Övrig

Mac Hur ändrar jag en java .jar-fil?

D

dudleybrooks

Originalaffisch
4 april 2011
San Francisco
  • 14 april 2011
Jag behöver göra en enkel ändring i ett program (Thunderbird.app) -- ändra en enda rad i en .jar-fil. På min gamla Windows-dator visste jag vilken programvara jag skulle använda. Vad är det enklaste sättet i Snow Leopard att öppna, ändra och spara .jar-filen i appen? Använd helst saker som är inbyggda i operativsystemet; om inte, använder du gratisprogram?

jiminaus

16 december 2010


Sydney
  • 15 april 2011
En .jar-fil är bara en .zip-fil med ett annat tillägg (och någon standard/fördefinierad layout). Du kan använda standardprogrammen för zip och unzip i /usr/bin för att ändra en .jar-fil, förutsatt att den inte är signerad.

'Att ändra en enstaka rad i en .jar-fil' är inte direkt vettigt i sammanhanget med en .jar-fil. Om du berättar exakt vad du vill göra med den där .jar-filen kanske vi kan berätta för dig vilka Mac OS X-verktyg/program du kan använda och hur. M

mufflon

15 september 2006
  • 15 april 2011
Trådlöst upplagd (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)

Det finns egentligen tre faser: extraktion, modifiering och att sätta ihop det igen.

Det är enkelt att extrahera: högerklicka och klicka på Unarchieve (afaik).

Modifiering: om det är manifestet (vilken klass som ska köras och så vidare) så är det enkelt, men java-filerna kompileras till .class-filer och kommer att behöva demonteras innan ändringar.

För att få ihop allt, googla på kommandot 'jar' för terminalen.

Om det är FOSS är det bättre och lättare att kompilera från källan; om inte så tror jag inte att det är 100% legitimt. D

dudleybrooks

Originalaffisch
4 april 2011
San Francisco
  • 15 april 2011
Jag måste ändra en rad i en .js-fil som finns i .jar-filen. Men ditt svar förtydligar min fråga:

Jag gjorde den här ändringen många, många gånger under Windows (nämligen varje gång jag laddade ner en uppgradering, vilket naturligtvis raderade min tidigare ändring). Personen som rekommenderade ändringen rekommenderade också en (av)arkivering som heter IZArc, där hela processen kunde göras inifrån IZArc -- öppna (arkivera) .jar-filen, hitta .js-filen, redigera raden ... och sedan klicka på Avsluta skulle återställa allt till sitt arkiverade tillstånd.

Jag förstår att jag kan avarkivera .jar med valfri unarchiver och redigera .js med valfri textredigerare. Jag antar att min oro är att jag, eftersom jag inte är programmerare, kan göra något skadligt vid omarkivering -- inte arkivera alla relevanta filer, eller arkivera för många filer eller något.

Så min fråga är: Finns det ett arkiv (förhoppningsvis i operativsystemet) som kommer att göra allt ovanstående inifrån sig själv, så att jag vet att den sista .jaren innehåller exakt de filer som den ska innehålla? Eller, om det misslyckas, vad behöver jag göra för att se till att jag har arkiverat det ordentligt? Jag inser att detta är en fullständig nybörjarfråga i detta forum.

inte bara jay

19 september 2003
Kanada, va?
  • 15 april 2011
Tja, om .jar-filer helt enkelt är ZIP-filer med ett annat tillägg, kan du zippa och packa upp dem fritt från terminalen med kommandona 'zip' och 'unzip'.

chown33

Moderator
Anställd
9 augusti 2009
det avgrundsdjupa planet
  • 15 april 2011
notjustjay sa: Tja, om .jar-filer helt enkelt är ZIP-filer med en annan förlängning, så kan du zippa och packa upp dem fritt från terminalen med kommandona 'zip' och 'unzip'.

Eller använd kommandot 'jar', som är skrivet uttryckligen för detta ändamål, och upprätthåller den korrekta ordningen för manifesten (som vanligtvis måste finnas som den första posten, eller högst en av de första).

Jag är ganska säker på att jar-kommandot är installerat som standard. Detta bör även fortsättningsvis vara sant på 10.7 Lion.
Reaktioner:abronsdilan

inte bara jay

19 september 2003
Kanada, va?
  • 15 april 2011
chown33 sa: Eller använd kommandot 'jar', som är skrivet uttryckligen för detta ändamål, och upprätthåller den korrekta ordningen för manifesten (som vanligtvis måste finnas som den första posten, eller högst en av de första).

Jag är ganska säker på att jar-kommandot är installerat som standard. Detta bör även fortsättningsvis vara sant på 10.7 Lion.

Ah, ännu bättre. Tack, visste inte om det.

pilotfel

12 april 2006
Lång ö
  • 15 april 2011
Eller så kan du använda jar-kommandot. Parametrarna är precis som kommandoradens zip-verktyg

$jar -xvf jarfile.jar ** Extraherar filerna

**redigera filen**

$jar -cvf jarfile.jar ** Skapa den nya Jar-filen
Reaktioner:abronsdilan D

dudleybrooks

Originalaffisch
4 april 2011
San Francisco
  • 15 april 2011
Tack. PilotErrors metod var enkel och framgångsrik -- inga programvarufel, nybörjarfel eller ens pilotfel. Men det hade fortfarande fler steg än vad jag brukade behövde i Windows: byta från Terminal efter avarkivering, till skrivbordet för att använda en editor (mitt fel, visserligen, för att jag inte kände till unix-redigeraren/erna som jag antar att Terminal har tillgång till) , sedan tillbaka till Terminal för att återarkivera -- plus de fler tangenttryckningar som behövs för unix-kommandona. Jag skulle fortfarande vilja hitta en redigerare som gör det *allt* i ett program, som IZArc gjorde i Windows: ctrl-open, edit, ctrl-close -- zip-zip (pun intended)!

chown33

Moderator
Anställd
9 augusti 2009
det avgrundsdjupa planet
  • 15 april 2011
dudleybrooks sa: Tack. PilotErrors metod var enkel och framgångsrik -- inga programvarufel, nybörjarfel eller ens pilotfel. Men det hade fortfarande fler steg än vad jag brukade behövde i Windows: byta från Terminal efter avarkivering, till skrivbordet för att använda en editor (mitt fel, visserligen, för att jag inte kände till unix-redigeraren/erna som jag antar att Terminal har tillgång till) , sedan tillbaka till Terminal för att återarkivera -- plus de fler tangenttryckningar som behövs för unix-kommandona. Jag skulle fortfarande vilja hitta en redigerare som gör det *allt* i ett program, som IZArc gjorde i Windows: ctrl-open, edit, ctrl-close -- zip-zip (pun intended)!

Jag känner inte till något verktyg som gör allt. Ärligt talat är det första gången jag någonsin har sett någon fråga hur man redigerar en fil i en burk på Mac OS, så jag antar att det inte finns någon stor målmarknad.

Du kan klistra in kommandorader i Terminal, så spara bara kommandona i en textfil och kopiera och klistra in dem. Ingen skrivning behövs.

Det här är ungefär vad jag skulle spara i textfilen:
Kod: |_+_| Du bör självklart ändra jarfile.jar till den faktiska jar-filen du har.

Jag har visat ## eftersom de är den faktiska kommentarstecken för bash.

Jag har också visat ett 'öppna -e'-kommando med ett sökvägsnamn som du måste ersätta. Den öppna -e öppnar den namngivna filen i TextEdit.app. Om du har en annan redigerare du föredrar istället, kan du säga till 'öppna' att använda den istället. Här är mansidan för kommandot 'öppna':
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/open.1.html
Titta på -a och -b-alternativen i synnerhet.

Slutligen kan du lägga in andra kommandon där, som en 'cd someDir' eller vad du vill.

Du kan förmodligen skriva ett 'sed'-skript för att byta ut, så att du inte behöver redigera filen manuellt alls. Sedan kan du göra det hela till ett skalskript, slå in det i ett AppleScript och spara det som en droppe. Sedan i framtiden släpper du helt enkelt din ursprungliga app på AppleScript-droppen och den skulle göra alla ändringar automatiskt. Du måste dock skriva och felsöka allt det där, och det skulle förmodligen ta timmar längre än att bara kopiera/klistra in när appen uppdateras.

Om ändringen av burken är något som leverantören ska tillhandahålla, bör du förmodligen skicka in en felrapport mot appen. För den renaste fixen är att inte behöva fixa det själv alls.

pilotfel

12 april 2006
Lång ö
  • 15 april 2011
På windows kan du använda program som pkzip eller winzip som visar innehållet i fönstret och du kan bara dubbelklicka på en fil som sedan extraheras under huven och skickas till tillhörande program (editor).

Det finns zip-verktyg under OS X, men jag använder visserligen inte OS X som jag använder Windows. Jag är säker på att du kan spåra ett av programmen som gör att du kan göra samma sak, men för det som behövdes här var det inte värt att söka efter det. D

dudleybrooks

Originalaffisch
4 april 2011
San Francisco
  • 16 april 2011
PilotError och Chown33: Jag är säker på att du har rätt när det gäller bristen på marknad i OS X.

Chown33: Tack för råden om automatisering och detaljerna inblandade. Jag ska prova dem. OMG, jag kanske blir programmerare!

Det är något *jag* tycker borde fixas, men det är inte en bugg: Thunderbird har en avancerad sökningsfunktion för e-postadresser, som kan returnera flera adresser. Om du klickar på Skriv, placeras alla i 'Till'-fält (utan något annat alternativ). Ändringen gör att de placeras i 'BCC'-fält, för bättre nätetikett. TB 1.x brukade ha det här alternativet, men förlorade det i 2.x. P

peregin55

25 februari 2008
  • 8 maj 2011
Emacs kommer att göra vad du vill

På Linux och Mac OS X använder jag emacs för att redigera filer i en burk. Bara Skriv:

emacs somejar.jar

Du kan sedan bläddra bland alla filer i burken, öppna, spara, vad som helst med hjälp av vanliga emacs-kommandon. Alla ändringar du gör kommer automatiskt att tillämpas på burken (du behöver inte lossa något manuellt)
Reaktioner:abronsdilan D

dudleybrooks

Originalaffisch
4 april 2011
San Francisco
  • 8 maj 2011
Tack!

peregin55

Det är bra att veta.

-
Dudley B

stor katastrof

14 januari 2010
  • 8 juni 2012
argh. det fungerar inte. Jag behöver byta ut några strängar i .class-filerna (jag använder exakt samma antal symboler), sedan försöker jag packa om den med jar-kommandot, men den resulterande filen är några byte mindre än den ursprungliga, och när jag testa att installera det på min mobil det står 'fel jar format'.
Några idéer?

TopHatProductions115

22 augusti 2016
  • 10 november 2016
pilotError sa: Eller så kan du använda jar-kommandot. Parametrarna är precis som kommandoradens zip-verktyg

$jar -xvf jarfile.jar ** Extraherar filerna

**redigera filen**

$jar -cvf jarfile.jar ** Skapa den nya Jar-filen


Kommer detta att fungera för signerade java-arkiv?

michaelwarne

11 november 2016
  • 11 november 2016
Du kan använda vim editor för att redigera filerna i alla komprimerade textfiler.
  1. Navigera till filplatsen från terminalen.
  2. Skriv vim name.jar
  3. Välj filen du vill ändra och tryck på Enter
  4. Redigera filen och tryck Esc och :wq! att spara och sluta.
Hoppas det här hjälper.

okieiam

17 december 2016
  • 18 december 2016
ja jag också, jag brukade använda 7zip för att redigera classpath i jar-fil i Windows J

jtara

23 april 2009
  • 21 december 2016
Om du behöver ändra thunderbird.app, använd källan, gör din ändring och 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 använda vim editor för att redigera filerna i alla komprimerade textfiler.
  1. Navigera till filplatsen från terminalen.
  2. Skriv vim name.jar
  3. Välj filen du vill ändra och tryck på Enter
  4. Redigera filen och tryck Esc och :wq! att spara och sluta.
Hoppas det här hjälper.
kan vi inte automatisera detta med en bash? det skulle vara till stor hjälp om du upplyser dig igenom det.
Reaktioner:abronsdilan