Annen

Mac Hvordan endre en java .jar-fil?

D

dudleybrooks

Original plakat
4. april 2011
San Fransisco
  • 14. april 2011
Jeg må gjøre en enkel modifikasjon i et program (Thunderbird.app) -- endre en enkelt linje i en .jar-fil. På min gamle Windows-datamaskin visste jeg hvilken programvare jeg skulle bruke. Hva er den enkleste måten i Snow Leopard å åpne, endre og lagre .jar-filen i appen? Bruk helst ting som er innebygd i OS; hvis ikke, bruker du freeware?

jiminaus

16. desember 2010


Sydney
  • 15. april 2011
En .jar-fil er bare en .zip-fil med en annen utvidelse (og en standard/forhåndsdefinert layout). Du kan bruke standard zip- og unzip-programmene i /usr/bin for å endre en .jar-fil, forutsatt at den ikke er signert.

'Endre en enkelt linje i en .jar-fil' gir ikke direkte mening i sammenheng med .jar-fil. Hvis du forteller oss nøyaktig hva du vil gjøre med den .jar-filen, kan vi kanskje fortelle deg hvilke Mac OS X-verktøy/programmer du kan bruke og hvordan. M

mufflon

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

Det er egentlig tre faser: utvinning, modifikasjon og å sette den sammen igjen.

Det er enkelt å pakke ut: Høyreklikk og klikk unarchieve (afaik).

Modifikasjon: hvis det er manifestet (hvilken klasse som skal kjøres og så videre) så er det enkelt, men java-filene er kompilert til .class-filer og må demonteres før modifikasjon.

For å sette alt sammen, google 'jar'-kommandoen for terminalen.

Hvis det er FOSS er det bedre og enklere å kompilere fra kilden; hvis ikke så tror jeg ikke det er 100% lovlig. D

dudleybrooks

Original plakat
4. april 2011
San Fransisco
  • 15. april 2011
Jeg må endre en linje i en .js-fil i .jar-filen. Men svaret ditt oppklarer spørsmålet mitt:

Jeg gjorde denne endringen mange, mange ganger under Windows (nemlig hver gang jeg lastet ned en oppgradering, som selvfølgelig slettet min forrige endring). Personen som anbefalte endringen anbefalte også et (av)arkiver kalt IZArc, der hele prosessen kunne gjøres fra innsiden av IZArc -- åpne (arkiver) .jar-filen, finn .js-filen, rediger linjen ... og deretter klikke Avslutt vil returnere alt til sin arkiverte tilstand.

Jeg forstår at jeg kan dearkivere .jar med hvilken som helst unarchiver og redigere .js med hvilken som helst tekstredigerer. Jeg antar at bekymringen min er at jeg, som ikke er programmerer, kan gjøre noe skadelig ved re-arkivering -- ikke arkivere alle relevante filer, eller arkivere for mange filer, eller noe.

Så spørsmålet mitt er: Finnes det en arkiver (forhåpentligvis i OS) som vil gjøre alt ovenfor fra seg selv, slik at jeg vet at den endelige .jar inneholder nøyaktig de filene den skal inneholde? Eller, hvis det ikke er mulig, hva må jeg gjøre for å forsikre meg om at jeg har arkivert den på nytt på riktig måte? Jeg innser at i dette forumet er dette et fullstendig nybegynnerspørsmål.

ikke bare jay

19. september 2003
Canada, ikke sant?
  • 15. april 2011
Vel, hvis .jar-filer ganske enkelt er ZIP-filer med en annen utvidelse, kan du zippe og pakke dem fritt fra terminalen ved å bruke 'zip'- og 'unzip'-kommandoene.

chown33

Moderator
Betjeningen
9. august 2009
det dype planet
  • 15. april 2011
notjustjay sa: Vel, hvis .jar-filer bare er ZIP-filer med en annen utvidelse, kan du zippe og pakke dem fritt fra terminalen ved å bruke 'zip'- og 'unzip'-kommandoene.

Eller bruk 'jar'-kommandoen, som er skrevet eksplisitt for dette formålet, og opprettholder riktig rekkefølge for manifester (som vanligvis må ligge som den første oppføringen, eller høyst en av de første).

Jeg er ganske sikker på at jar-kommandoen er installert som standard. Dette bør fortsette å være sant på 10.7 Lion også.
Reaksjoner:abronsdilan

ikke bare jay

19. september 2003
Canada, ikke sant?
  • 15. april 2011
chown33 sa: Eller bruk 'jar'-kommandoen, som er skrevet eksplisitt for dette formålet, og opprettholder riktig rekkefølge for manifester (som typisk må ligge som den første oppføringen, eller høyst en av de første).

Jeg er ganske sikker på at jar-kommandoen er installert som standard. Dette bør fortsette å være sant på 10.7 Lion også.

Ah, enda bedre. Takk, visste ikke om det.

pilotFeil

12. april 2006
Lang øy
  • 15. april 2011
Eller du kan bruke jar-kommandoen. Parametrene er akkurat som kommandolinjens zip-verktøy

$jar -xvf jarfile.jar ** Trekker ut filene

**rediger filen**

$jar -cvf jarfile.jar ** Opprett den nye Jar-filen
Reaksjoner:abronsdilan D

dudleybrooks

Original plakat
4. april 2011
San Fransisco
  • 15. april 2011
Takk. PilotErrors metode var grei og vellykket - ingen programvarefeil, nybegynnerfeil eller til og med pilotfeil. Men den hadde fortsatt flere trinn enn jeg pleide å trenge i Windows: bytte fra Terminal etter avarkivering, til skrivebordet for å bruke en editor (min feil, riktignok, for ikke å vite unix-editoren(e) som jeg antar at Terminal har tilgang til) , og deretter tilbake til Terminal for å rearkivere -- pluss de flere tastetrykkene som trengs for unix-kommandoene. Jeg vil fortsatt finne en editor som gjør det *alt* i ett program, slik IZArc gjorde i Windows: ctrl-open, edit, ctrl-close -- zip-zip (pun intended)!

chown33

Moderator
Betjeningen
9. august 2009
det dype planet
  • 15. april 2011
dudleybrooks sa: Takk. PilotErrors metode var grei og vellykket - ingen programvarefeil, nybegynnerfeil eller til og med pilotfeil. Men den hadde fortsatt flere trinn enn jeg pleide å trenge i Windows: bytte fra Terminal etter avarkivering, til skrivebordet for å bruke en editor (min feil, riktignok, for ikke å vite unix-editoren(e) som jeg antar at Terminal har tilgang til) , og deretter tilbake til Terminal for å rearkivere -- pluss de flere tastetrykkene som trengs for unix-kommandoene. Jeg vil fortsatt finne en editor som gjør det *alt* i ett program, slik IZArc gjorde i Windows: ctrl-open, edit, ctrl-close -- zip-zip (pun intended)!

Jeg vet ikke om noe verktøy som gjør alt. Ærlig talt, dette er første gang jeg noen gang har sett noen spørre hvordan man redigerer en fil i en jar på Mac OS, så jeg antar at det ikke er et stort målmarked.

Du kan lime inn kommandolinjer i Terminal, så bare lagre kommandoene i en tekstfil, kopier og lim inn. Ingen skriving nødvendig.

Her er omtrent hva jeg ville lagret i tekstfilen:
Kode: |_+_| Du bør åpenbart endre jarfile.jar til den faktiske jar-filen du har.

Jeg har vist ## fordi de er selve kommentartegnet for bash.

Jeg har også vist en 'open -e'-kommando med et banenavn du må erstatte. Den åpne -e vil åpne den navngitte filen i TextEdit.app. Hvis du har en annen editor du foretrekker i stedet, kan du fortelle 'åpne' å bruke den i stedet. Her er man-siden for 'åpne'-kommandoen:
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/open.1.html
Se spesielt på -a og -b-alternativene.

Til slutt kan du legge inn andre kommandoer der, for eksempel en 'cd someDir' eller hva annet du vil.

Du kan sannsynligvis skrive et 'sed'-skript for å gjøre erstatningen, slik at du ikke trenger å redigere filen manuelt i det hele tatt. Deretter kan du gjøre det hele til et shell-script, pakke det inn i et AppleScript og lagre det som en dråpe. Så i fremtiden slipper du ganske enkelt den originale appen din på AppleScript-dråpen, og den vil gjøre alle endringene automatisk. Du må imidlertid skrive og feilsøke alle de tingene, og det vil sannsynligvis ta timer mer tid enn bare å kopiere/lime inn når appen blir oppdatert.

Hvis endringen til krukken er noe leverandøren bør gi, bør du sannsynligvis sende inn en feilrapport mot appen. Fordi den reneste løsningen er å slippe å fikse det selv i det hele tatt.

pilotFeil

12. april 2006
Lang øy
  • 15. april 2011
På Windows kan du bruke programmer som pkzip eller winzip som viser innholdet i vinduet, og du kan bare dobbeltklikke på en fil som deretter blir pakket ut under panseret og sendt til det tilhørende programmet (editor).

Det er zip-verktøy under OS X, men riktignok bruker jeg ikke OS X som jeg bruker Windows. Jeg er sikker på at du kan spore et av programmene som lar deg gjøre det samme, men for det som var nødvendig her, var det ikke verdt å søke etter det. D

dudleybrooks

Original plakat
4. april 2011
San Fransisco
  • 16. april 2011
PilotError og Chown33: Jeg er sikker på at du har rett når det gjelder mangelen på marked i OS X.

Chown33: Takk for rådene om automatisering og detaljene involvert. Jeg skal prøve dem. OMG, jeg kan bli programmerer!

Det er noe *jeg* mener bør fikses, men det er ikke en feil: Thunderbird har en avansert søkefunksjon for e-postadresser, som kan returnere flere adresser. Hvis du klikker på Skriv, plasseres alle i 'Til'-felt (uten andre alternativer). Endringen gjør at de plasseres i 'BCC'-felt, for bedre nettikk. TB 1.x pleide å ha dette alternativet, men mistet det i 2.x. P

peregin55

25. februar 2008
  • 8. mai 2011
Emacs vil gjøre hva du vil

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

emacs somejar.jar

Du kan deretter bla gjennom alle filene i krukken, åpne, lagre, hva som helst ved å bruke standard emacs-kommandoer. Eventuelle endringer du gjør vil automatisk bli brukt på krukken (du trenger ikke å fjerne jar noe manuelt)
Reaksjoner:abronsdilan D

dudleybrooks

Original plakat
4. april 2011
San Fransisco
  • 8. mai 2011
Takk!

peregin55

Det er godt å vite.

-
Dudley B

stor katastrofe

14. januar 2010
  • 8. juni 2012
argh. det går ikke. Jeg må erstatte noen strenger i .class-filene (jeg bruker nøyaktig samme antall symboler), så prøver jeg å pakke den på nytt med jar-kommandoen, men den resulterende filen er noen byte mindre enn den opprinnelige, og når jeg prøv å installere den på mobilen min, det står 'feil jar format'.
Noen ideer?

TopHatProductions115

22. august 2016
  • 10. november 2016
pilotError sa: Eller du kan bruke jar-kommandoen. Parametrene er akkurat som kommandolinjens zip-verktøy

$jar -xvf jarfile.jar ** Trekker ut filene

**rediger filen**

$jar -cvf jarfile.jar ** Opprett den nye Jar-filen


Vil dette fungere for signerte java-arkiver?

michaelwarne

11. november 2016
  • 11. november 2016
Du kan bruke vim editor til å redigere filene i alle komprimerte tekstfiler.
  1. Naviger til filplassering fra terminalen.
  2. Skriv inn vim name.jar
  3. Velg filen du vil endre og trykk Enter
  4. Rediger filen og trykk Esc og :wq! å spare og slutte.
Håper dette hjelper.

okieiam

17. desember 2016
  • 18. desember 2016
ja jeg også, jeg pleide å bruke 7zip til å redigere klassesti i jar-fil i Windows J

jtara

23. april 2009
  • 21. desember 2016
Hvis du trenger å endre thunderbird.app, bruk kilden, gjør endringen og bygg den.

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

Clovr

13. november 2018
  • 13. november 2018
michaelwarne sa: Du kan bruke vim editor til å redigere filene i alle komprimerte tekstfiler.
  1. Naviger til filplassering fra terminalen.
  2. Skriv inn vim name.jar
  3. Velg filen du vil endre og trykk Enter
  4. Rediger filen og trykk Esc og :wq! å spare og slutte.
Håper dette hjelper.
kan vi ikke automatisere dette med en bash? det vil være til stor hjelp hvis du opplyser deg gjennom det.
Reaksjoner:abronsdilan