Друго

Mac Как да модифицирам java .jar файл?

д

Дъдлибрукс

Оригинален плакат
4 април 2011 г
Сан Франциско
  • 14 април 2011 г
Трябва да направя проста модификация в приложение (Thunderbird.app) - промяна на един ред в .jar файл. На стария си компютър с Windows знаех какъв софтуер да използвам. Кой е най-лесният начин в Snow Leopard да отворите, модифицирате и запишете .jar файла в приложението? За предпочитане е да използвате неща, които са вградени в операционната система; ако не, тогава с помощта на безплатен софтуер?

Jiminaus

16 декември 2010 г


Сидни
  • 15 април 2011 г
Файлът .jar е просто .zip файл с различно разширение (и някакво стандартно/предефинирано оформление). Можете да използвате стандартните zip и разархивиращи програми в /usr/bin, за да промените .jar файл, ако приемем, че не е подписан.

„Промяната на един ред в .jar файл“ няма директно смисъл в контекста на .jar файл. Ако ни кажете какво точно искате да правите с този .jar файл, може да сме в състояние да ви кажем какви инструменти/програми на Mac OS X можете да използвате и как. М

мъфлон

15 септември 2006 г
  • 15 април 2011 г
Публикувано безжично (Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 като Mac OS X; sv-se) AppleWebKit/533.17.9 (KHTML, като Gecko) версия/5.0.2 Mobile/8C148 Safari/6533.18.5)

Всъщност има три фази: извличане, модификация и сглобяване отново заедно.

Извличането е лесно: щракнете с десния бутон и щракнете върху деархивиране (afaik).

Модификация: ако това е манифестът (whick class за изпълнение и т.н.), тогава е лесно, но java файловете се компилират в .class файлове и ще се нуждаят от разглобяване преди модификация.

За да съберете всичко заедно, google командата 'jar' за терминала.

Ако е FOSS е по-добре и по-лесно да се компилира от източник; ако не, тогава не мисля, че е 100% законен. д

Дъдлибрукс

Оригинален плакат
4 април 2011 г
Сан Франциско
  • 15 април 2011 г
Трябва да променя ред в .js файл, съдържащ се във файла .jar. Но вашият отговор изяснява въпроса ми:

Направих тази промяна много, много пъти под Windows (а именно всеки път, когато изтеглях надстройка, което, разбира се, изтрива предишната ми промяна). Човекът, който препоръча промяната, също препоръча (не)архиватор, наречен IZArc, в който целият процес може да се извърши отвътре IZArc - отворете (разархивирайте) .jar файла, намерете .js файла, редактирайте реда ... и след това щракването върху Quit ще върне всичко в неговото архивирано състояние.

Разбирам, че мога да разархивирам .jar с всеки разархиватор и да редактирам .js с всеки текстов редактор. Предполагам, че се притеснявам, че не съм програмист, може да направя нещо вредно при повторното архивиране - да не архивирам всички съответни файлове, или да архивирам твърде много файлове, или нещо подобно.

Та въпросът ми е: Има ли архиватор (надявам се в ОС), който ще направи всичко по-горе от себе си, така че да знам, че окончателният .jar съдържа точно файловете, които трябва да съдържа? Или, ако не успея, какво трябва да направя, за да се уверя, че съм го архивирал правилно? Давам си сметка, че в този форум това е напълно начинаещ въпрос.

not justjay

19 септември 2003 г
Канада, а?
  • 15 април 2011 г
Е, ако .jar файловете са просто ZIP файлове с различно разширение, тогава можете да ги архивирате и разархивирате свободно от терминала, като използвате командите 'zip' и 'unzip'.

chown33

Модератор
Член на персонала
9 август 2009 г
Бездната равнина
  • 15 април 2011 г
notjustjay каза: Е, ако .jar файловете са просто ZIP файлове с различно разширение, тогава можете да ги архивирате и разархивирате свободно от терминала, като използвате командите 'zip' и 'unzip'.

Или използвайте командата 'jar', която е написана изрично за тази цел и поддържа правилния ред за манифестите (които обикновено трябва да се намират като първия запис или най-много като един от първите няколко).

Почти съм сигурен, че командата jar е инсталирана по подразбиране. Това трябва да продължи да важи и за 10.7 Lion.
Реакции:Абронсдилан

not justjay

19 септември 2003 г
Канада, а?
  • 15 април 2011 г
chown33 каза: Или използвайте командата 'jar', която е написана изрично за тази цел и поддържа правилния ред за манифестите (които обикновено трябва да се намират като първия запис или най-много като един от първите няколко).

Почти съм сигурен, че командата jar е инсталирана по подразбиране. Това трябва да продължи да важи и за 10.7 Lion.

А, още по-добре. Благодаря, не знаех за това.

пилотска грешка

12 април 2006 г
Дълъг остров
  • 15 април 2011 г
Или можете да използвате командата jar. Параметрите са точно като помощните програми за zip на командния ред

$jar -xvf jarfile.jar ** Извлича файловете

** редактирайте файла **

$jar -cvf jarfile.jar ** Създайте новия Jar файл
Реакции:Абронсдилан д

Дъдлибрукс

Оригинален плакат
4 април 2011 г
Сан Франциско
  • 15 април 2011 г
Благодаря. Методът на PilotError беше ясен и успешен - без софтуерни грешки, грешки при начинаещи или дори пилотни грешки. Но все още имаше повече стъпки, отколкото ми трябваха в Windows: превключване от терминал след разархивиране, към работния плот, за да използвам редактор (моя грешка, разбира се, че не познавах unix редактора, до който предполагам, че терминалът има достъп) , след това обратно към терминала, за да архивирате отново - плюс повече натискания на клавиши, необходими за unix командите. Все пак бих искал да намеря редактор, който да го прави *всичко* в една програма, както IZArc направи в Windows: ctrl-open, edit, ctrl-close -- zip-zip (игра на думи)!

chown33

Модератор
Член на персонала
9 август 2009 г
Бездната равнина
  • 15 април 2011 г
dudleybrooks каза: Благодаря. Методът на PilotError беше ясен и успешен - без софтуерни грешки, грешки при начинаещи или дори пилотни грешки. Но все още имаше повече стъпки, отколкото ми трябваха в Windows: превключване от терминал след разархивиране, към работния плот, за да използвам редактор (моя грешка, разбира се, че не познавах unix редактора, до който предполагам, че терминалът има достъп) , след това обратно към терминала, за да архивирате отново - плюс повече натискания на клавиши, необходими за unix командите. Все пак бих искал да намеря редактор, който да го прави *всичко* в една програма, както IZArc направи в Windows: ctrl-open, edit, ctrl-close -- zip-zip (игра на думи)!

Не знам за инструмент, който да прави всичко. Честно казано, това е първият път, когато виждам някой да пита как да редактира файл в jar на Mac OS, така че предполагам, че няма голям целеви пазар.

Можете да поставите командни редове в терминала, така че просто запазете командите в текстов файл, след което копирайте и поставете. Не е необходимо въвеждане.

Ето приблизително какво бих запазил в текстовия файл:
Код: |_+_| Очевидно трябва да промените jarfile.jar с действителния jar файл, който имате.

Показах ##, защото това са действителните символи за коментар за bash.

Показах също и команда 'open -e' с име на път, което ще трябва да замените. Open -e ще отвори посочения файл в TextEdit.app. Ако вместо това имате друг редактор, който предпочитате, можете да кажете на „open“ да го използва вместо него. Ето man страницата за командата 'open':
http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/open.1.html
Разгледайте по-специално опциите -a и -b.

И накрая, можете да поставите други команди там, като 'cd someDir' или каквото друго искате.

Вероятно бихте могли да напишете 'sed' скрипт, за да извършите подмяната, така че изобщо няма да ви се налага да редактирате ръчно файла. След това можете да направите цялото нещо в shell скрипт, да го увиете в AppleScript и да го запишете като капчица. След това в бъдеще просто пускате оригиналното си приложение върху капчица AppleScript и то ще направи всички промени автоматично. Все пак ще трябва да напишете и отстраните всички тези неща и вероятно ще отнеме часове повече време, отколкото просто да направите копиране/поставяне, когато приложението се актуализира.

Ако промяната в буркана е нещо, което доставчикът трябва да предостави, вероятно трябва да подадете доклад за грешка срещу приложението. Защото най-чистото решение е изобщо да не се налага да го поправяте сами.

пилотска грешка

12 април 2006 г
Дълъг остров
  • 15 април 2011 г
В Windows можете да използвате програми като pkzip или winzip, които показват съдържанието в прозореца и можете просто да щракнете двукратно върху файл, който след това се извлича под капака и се изпраща на свързаната програма (редактор).

Има zip помощни програми под OS X, но да си призная, аз не използвам OS X, както използвам Windows. Сигурен съм, че бихте могли да проследите една от програмите, които ще ви позволят да направите същото, но за това, което беше необходимо тук, не си струваше да го търсите. д

Дъдлибрукс

Оригинален плакат
4 април 2011 г
Сан Франциско
  • 16 април 2011 г
PilotError и Chown33: Сигурен съм, че сте прав за липсата на пазар в OS X.

Chown33: Благодаря за съветите относно автоматизацията и съответните подробности. ще ги пробвам. OMG, може и да стана програмист!

Това е нещо, което според мен трябва да бъде поправено, но не е грешка: Thunderbird има функция за разширено търсене на имейл адреси, която може да върне множество адреси. Ако щракнете върху Писане, той ги поставя всички в полетата „До“ (без друга опция). Промяната ги кара да ги поставят в полетата „BCC“ за по-добър нетокет. TB 1.x имаше тази опция, но я загуби в 2.x. П

peregin55

25 февруари 2008 г
  • 8 май 2011 г
Emacs ще направи каквото искате

На Linux и Mac OS X използвам emacs за редактиране на файлове в буркан. Просто напишете:

emacs somejar.jar

След това можете да преглеждате всички файлове в jar, да отваряте, запазвате, каквото и да е, като използвате стандартни команди на emacs. Всички промени, които направите, автоматично ще бъдат приложени към буркана (няма нужда да разархивирате ръчно нищо)
Реакции:Абронсдилан д

Дъдлибрукс

Оригинален плакат
4 април 2011 г
Сан Франциско
  • 8 май 2011 г
Благодаря!

peregin55

Това е добре да се знае.

-
Дъдли Б

голямо бедствие

14 януари 2010 г
  • 8 юни 2012 г
ааааа не работи. Трябва да заменя няколко низа във файловете .class (използвам точно същия брой символи), след което се опитвам да го опаковам отново с команда jar, но полученият файл е с няколко байта по-малък от първоначалния и когато опитайте да го инсталирате на моя мобилен телефон, пише 'грешен формат на jar'.
Някакви идеи?

TopHatProductions115

22 август 2016 г
  • 10 ноември 2016 г
pilotError каза: Или можете да използвате командата jar. Параметрите са точно като помощните програми за zip на командния ред

$jar -xvf jarfile.jar ** Извлича файловете

** редактирайте файла **

$jar -cvf jarfile.jar ** Създайте новия Jar файл


Ще работи ли това за подписани java архиви?

Майкълуорн

11 ноември 2016 г
  • 11 ноември 2016 г
Можете да използвате редактора vim, за да редактирате файловете във всякакви компресирани текстови файлове.
  1. Придвижете се до местоположението на файла от терминала.
  2. Въведете vim name.jar
  3. Изберете файла, който искате да промените, и натиснете Enter
  4. Редактирайте файла и натиснете Esc и :wq! да запазите и да напуснете.
Надявам се това да помогне.

okieiam

17 декември 2016 г
  • 18 декември 2016 г
да, аз също използвах 7zip за редактиране на пътя към класа в jar файл в Windows Дж

jtara

23 април 2009 г
  • 21 декември 2016 г
Ако трябва да модифицирате thunderbird.app, използвайте източника, направете промяната и го създайте.

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

Clovr

13 ноември 2018 г
  • 13 ноември 2018 г
michaelwarne каза: Можете да използвате редактора vim, за да редактирате файловете във всякакви компресирани текстови файлове.
  1. Придвижете се до местоположението на файла от терминала.
  2. Въведете vim name.jar
  3. Изберете файла, който искате да промените, и натиснете Enter
  4. Редактирайте файла и натиснете Esc и :wq! да запазите и да напуснете.
Надявам се това да помогне.
не можем ли да автоматизираме това с помощта на bash? би било много полезно, ако го просветлите.
Реакции:Абронсдилан