Andet

Mac Hvordan ændrer man en java .jar-fil?

D

dudleybrooks

Original plakat
4. april 2011
San Francisco
  • 14. april 2011
Jeg skal lave en simpel ændring i en applikation (Thunderbird.app) -- at ændre en enkelt linje i en .jar-fil. På min gamle Windows-computer vidste jeg, hvilken software jeg skulle bruge. Hvad er den nemmeste måde i Snow Leopard at åbne, ændre og gemme .jar-filen i appen? Bruger helst ting, der er indbygget i OS; hvis ikke, så bruger freeware?

jiminaus

16. december 2010


Sydney
  • 15. april 2011
En .jar-fil er bare en .zip-fil med en anden udvidelse (og et eller andet standard/foruddefineret layout). Du kan bruge standard zip- og unzip-programmerne i /usr/bin til at ændre en .jar-fil, forudsat at den ikke er signeret.

'At ændre en enkelt linje i en .jar-fil' giver ikke direkte mening i sammenhæng med en .jar-fil. Hvis du fortæller os præcis, hvad du vil gøre med den .jar-fil, kan vi muligvis fortælle dig, hvilke Mac OS X-værktøjer/programmer du kan bruge og hvordan. M

mufflon

15. september 2006
  • 15. april 2011
Trådløst sendt (Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 som Mac OS X; sv-se) AppleWebKit/533.17.9 (KHTML, som Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5)

Der er i virkeligheden tre faser: udvinding, modifikation og at samle det igen.

Udpakning er let: Højreklik og klik unarchieve (afaik).

Ændring: hvis det er manifestet (hvilket klasse skal køre og så videre), så er det nemt, men java-filerne er kompileret til .class-filer og skal skilles ad før ændringer.

For at samle alting, google kommandoen 'jar' til terminalen.

Hvis det er FOSS er det bedre og nemmere at kompilere fra kilden; hvis ikke, så tror jeg ikke det er 100% lovligt. D

dudleybrooks

Original plakat
4. april 2011
San Francisco
  • 15. april 2011
Jeg skal ændre en linje i en .js-fil indeholdt i .jar-filen. Men dit svar præciserer mit spørgsmål:

Jeg lavede denne ændring mange, mange gange under Windows (nemlig hver gang jeg downloadede en opgradering, hvilket selvfølgelig udslettede min tidligere ændring). Den person, der anbefalede ændringen, anbefalede også et (af)arkiver kaldet IZArc, hvor hele processen kunne udføres inde fra IZArc -- åbn (arkivér) .jar-filen, find .js-filen, rediger linjen ... og derefter klikke på Afslut ville returnere alt til dets arkiverede tilstand.

Jeg forstår, at jeg kan fjerne arkivering af .jar med enhver unarchiver og redigere .js med en hvilken som helst teksteditor. Jeg gætter på, at min bekymring er, at jeg, som ikke er programmør, kan gøre noget skadeligt ved genarkivering -- ikke arkivere alle de relevante filer, eller arkivere for mange filer eller noget.

Så mit spørgsmål er: Er der en arkiver (forhåbentlig i OS), som vil gøre alt ovenstående inde fra sig selv, så jeg ved, at den endelige .jar indeholder præcis de filer, den skal indeholde? Eller, hvis det ikke er tilfældet, hvad skal jeg gøre for at sikre, at jeg har genarkiveret det korrekt? Jeg er klar over, at i dette forum er dette et komplet nybegynderspørgsmål.

ikke bare jay

19. september 2003
Canada, eh?
  • 15. april 2011
Nå, hvis .jar-filer blot er ZIP-filer med en anden udvidelse, så kan du zippe og udpakke dem frit fra terminalen ved at bruge kommandoerne 'zip' og 'unzip'.

chown33

Moderator
Medarbejder
9. august 2009
det afgrundsdybe plan
  • 15. april 2011
notjustjay sagde: Tja, hvis .jar-filer blot er ZIP-filer med en anden udvidelse, så kan du zippe og udpakke dem frit fra terminalen ved at bruge kommandoerne 'zip' og 'unzip'.

Eller brug kommandoen 'jar', som er skrevet udtrykkeligt til dette formål, og opretholder den korrekte rækkefølge for manifester (som typisk skal ligge som den første indgang, eller højst en af ​​de første få).

Jeg er ret sikker på, at jar-kommandoen er installeret som standard. Dette skulle også fortsætte med at være sandt på 10.7 Lion.
Reaktioner:abronsdilan

ikke bare jay

19. september 2003
Canada, eh?
  • 15. april 2011
chown33 sagde: Eller brug kommandoen 'jar', som er skrevet udtrykkeligt til dette formål, og opretholder den korrekte rækkefølge for manifester (som typisk skal ligge som den første indgang, eller højst en af ​​de første få).

Jeg er ret sikker på, at jar-kommandoen er installeret som standard. Dette skulle også fortsætte med at være sandt på 10.7 Lion.

Ah, endnu bedre. Tak, vidste ikke om det.

pilotfejl

12. april 2006
Lang ø
  • 15. april 2011
Eller du kan bruge jar-kommandoen. Parametrene er ligesom kommandolinjens zip-værktøjer

$jar -xvf jarfile.jar ** Udpakker filerne

**rediger filen **

$jar -cvf jarfile.jar ** Opret den nye Jar-fil
Reaktioner:abronsdilan D

dudleybrooks

Original plakat
4. april 2011
San Francisco
  • 15. april 2011
Tak. PilotErrors metode var ligetil og vellykket - ingen softwarefejl, nybegyndere eller endda pilotfejl. Men det havde stadig flere trin, end jeg plejede at have brug for i Windows: skifte fra Terminal efter fjernelse af arkivering til skrivebordet for at bruge en editor (min skyld, ganske vist, for ikke at kende den eller de unix-editorer, som jeg antager, at Terminal har adgang til) , derefter tilbage til Terminal for at arkivere -- plus de flere tastetryk, der er nødvendige for unix-kommandoer. Jeg vil stadig gerne finde en editor, der gør det *alt* i ét program, som IZArc gjorde i Windows: ctrl-open, edit, ctrl-close -- zip-zip (pun intended)!

chown33

Moderator
Medarbejder
9. august 2009
det afgrundsdybe plan
  • 15. april 2011
dudleybrooks sagde: Tak. PilotErrors metode var ligetil og vellykket - ingen softwarefejl, nybegyndere eller endda pilotfejl. Men det havde stadig flere trin, end jeg plejede at have brug for i Windows: skifte fra Terminal efter fjernelse af arkivering til skrivebordet for at bruge en editor (min skyld, ganske vist, for ikke at kende den eller de unix-editorer, som jeg antager, at Terminal har adgang til) , derefter tilbage til Terminal for at arkivere -- plus de flere tastetryk, der er nødvendige for unix-kommandoer. Jeg vil stadig gerne finde en editor, der gør det *alt* i ét program, som IZArc gjorde i Windows: ctrl-open, edit, ctrl-close -- zip-zip (pun intended)!

Jeg kender ikke noget værktøj, der gør alt. Helt ærligt, det er første gang, jeg nogensinde har set nogen spørge, hvordan man redigerer en fil i en jar på Mac OS, så jeg gætter på, at der ikke er et stort målmarked.

Du kan indsætte kommandolinjer i Terminal, så gem bare kommandoerne i en tekstfil, kopier og indsæt dem derefter. Ingen indtastning nødvendig.

Her er nogenlunde, hvad jeg ville gemme i tekstfilen:
Kode: |_+_| Du bør naturligvis ændre jarfile.jar til den faktiske jar-fil, du har.

Jeg har vist ##, fordi de er det faktiske kommentartegn for bash.

Jeg har også vist en 'open -e'-kommando med et stinavn, du skal erstatte. Den åbne -e vil åbne den navngivne fil i TextEdit.app. Hvis du har en anden editor, du foretrækker i stedet, kan du bede 'åben' bruge den i stedet for. Her er man-siden til kommandoen 'åbn':
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/open.1.html
Se især -a og -b mulighederne.

Endelig kan du lægge andre kommandoer derind, såsom en 'cd someDir' eller hvad du ellers ønsker.

Du kunne sandsynligvis skrive et 'sed'-script for at udføre erstatningen, så du slet ikke behøver at redigere filen manuelt. Så kan du lave det hele til et shell-script, pakke det ind i et AppleScript og gemme det som en dråbe. Så i fremtiden dropper du blot din originale app på AppleScript-dråben, og den vil foretage alle ændringerne automatisk. Du bliver dog nødt til at skrive og fejlfinde alle de ting, og det ville sandsynligvis tage timer mere tid end blot at kopiere/indsætte, når appen bliver opdateret.

Hvis ændringen til krukken er noget, leverandøren skal levere, bør du sandsynligvis indsende en fejlrapport mod appen. For den reneste løsning er slet ikke at skulle ordne det selv.

pilotfejl

12. april 2006
Lang ø
  • 15. april 2011
På windows kan du bruge programmer som pkzip eller winzip, der viser indholdet i vinduet, og du kan bare dobbeltklikke på en fil, som så bliver pakket ud under emhætten og sendt til det tilhørende program (editor).

Der er zip-værktøjer under OS X, men indrømmet, jeg bruger ikke OS X, som jeg bruger Windows. Jeg er sikker på, at du kunne spore et af de programmer, der vil give dig mulighed for at gøre det samme, men for det, der var nødvendigt her, var det ikke værd at søge efter det. D

dudleybrooks

Original plakat
4. april 2011
San Francisco
  • 16. april 2011
PilotError og Chown33: Jeg er sikker på, at du har ret med hensyn til manglen på marked i OS X.

Chown33: Tak for rådene om automatisering og de involverede detaljer. Jeg vil prøve dem. OMG, jeg bliver måske programmør!

Det er noget *jeg* synes burde rettes, men det er ikke en fejl: Thunderbird har en avanceret søgefunktion til e-mail-adresser, som kan returnere flere adresser. Hvis du klikker på Skriv, placeres dem alle i 'Til'-felter (uden anden mulighed). Ændringen gør, at de placeres i 'BCC'-felter, for bedre netiquette. TB 1.x plejede at have denne mulighed, men mistede den i 2.x. P

peregin55

25. februar 2008
  • 8. maj 2011
Emacs vil gøre, hvad du vil

På Linux og Mac OS X bruger jeg emacs til at redigere filer i en krukke. Bare skriv:

emacs somejar.jar

Du kan derefter gennemse alle filerne i krukken, åbne, gemme, hvad som helst ved hjælp af standard emacs-kommandoer. Eventuelle ændringer, du foretager, vil automatisk blive anvendt på krukken (ingen grund til at fjerne jar noget manuelt)
Reaktioner:abronsdilan D

dudleybrooks

Original plakat
4. april 2011
San Francisco
  • 8. maj 2011
Tak!

peregin55

Det er godt at vide.

-
Dudley B

stor katastrofe

14. januar 2010
  • 8. juni 2012
argh. det virker ikke. Jeg skal erstatte et par strenge i .class-filerne (jeg bruger nøjagtigt det samme antal symboler), så prøver jeg at pakke det igen med jar-kommando, men den resulterende fil er et par bytes mindre end den oprindelige, og når jeg prøv at installere det på min mobil, der står 'forkert jar format'.
Nogle ideer?

Top HatProductions115

22. august 2016
  • 10. november 2016
pilotError sagde: Eller du kan bruge jar-kommandoen. Parametrene er ligesom kommandolinjens zip-værktøjer

$jar -xvf jarfile.jar ** Udpakker filerne

**rediger filen **

$jar -cvf jarfile.jar ** Opret den nye Jar-fil


Vil dette fungere for signerede java-arkiver?

michaelwarne

11. november 2016
  • 11. november 2016
Du kan bruge vim editor til at redigere filerne i alle komprimerede tekstfiler.
  1. Naviger til filplacering fra terminal.
  2. Indtast vim name.jar
  3. Vælg den fil, du vil ændre, og tryk på Enter
  4. Rediger filen og tryk Esc og :wq! at spare og holde op.
Håber dette hjælper.

okieiam

17. december 2016
  • 18. december 2016
ja mig også, jeg plejede at bruge 7zip til at redigere classpath i jar-fil i Windows J

jtara

23. april 2009
  • 21. december 2016
Hvis du har brug for at ændre thunderbird.app, skal du bruge kilden, foretage din ændring og bygge den.

https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions C

Clovr

13. november 2018
  • 13. november 2018
michaelwarne sagde: Du kan bruge vim editor til at redigere filerne i alle komprimerede tekstfiler.
  1. Naviger til filplacering fra terminal.
  2. Indtast vim name.jar
  3. Vælg den fil, du vil ændre, og tryk på Enter
  4. Rediger filen og tryk Esc og :wq! at spare og holde op.
Håber dette hjælper.
kan vi ikke automatisere dette ved hjælp af en bash? det ville være meget nyttigt, hvis du oplyser dig igennem det.
Reaktioner:abronsdilan