Как перекомпилировать файл JAR? - PullRequest
6 голосов
/ 28 июля 2010

Я взял старый файл jar и отредактировал его. Теперь у меня есть папка со всеми файлами, и я хочу перекомпилировать их обратно в файл JAR. Как мне это сделать?

Ответы [ 4 ]

11 голосов
/ 28 июля 2010

Jar-файлы не «компилируются» в обычном смысле этого слова. Но вы просто создаете его с помощью команды jar:

jar cvf myfile.jar file1 file2 etc

Вы можете использовать globbing как обычно:

jar cvf ../myfile.jar *

Запустите jar -? или прочитайте документы для получения дополнительной информации.

Обратите внимание, что для исполняемого файла JAR вам также потребуется указать файл манифеста.

7 голосов
/ 28 июля 2010

Как вы его редактировали?

В любом случае, jar файлы имеют тот же формат, что и обычные zip файлы.Если вы хотите обновить содержимое банки (возможно, с помощью нового файла), вы можете сделать:

jar -uf yourJar.jar  path/to/updated/Class.class 

Это обновит вашу банку с файлом path/to/updated/Class.class Если уже есть класс с таким именем вэтот путь, он будет заменен.Если нет, то это будет создано.

После этого ваша банка актуальна.

1 голос
/ 28 июля 2010

jar-файл - это просто zip-файл с несколькими дополнительными файлами. Вы можете использовать любую zip-утилиту для повторного создания файла jar.

1 голос
/ 28 июля 2010

Jar-файлы обычно содержат скомпилированные java-файлы (class-files) и ресурсы. Если вам разрешено вносить изменения в этот jar-файл, вы можете разобрать файлы класса с помощью JAD и после перекомпиляции собрать их снова с помощью команды jar

Как вы редактировали файл jar, редактор hex?

...