2010-02-02 5 views
6

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

Я уже пробовал распаковывать с помощью 7zip над измененным источником и создал новую банку. Но когда я использую его в html, он показывает некоторую ошибку java.lang.Classnotfound

+0

Что вы подразумеваете под "изменением содержания"? Вы говорите о коде или о ресурсах (изображениях и т. Д.) В банке? –

+0

, если ваш ответ на комментарий @mmyers да, то Winrar FTW ............... –

ответ

12

Вы можете развязать или подменить классы и исходные файлы по своему усмотрению.

unjar

jar -xvf abc.jar 

баночка

jar cf abc.jar input-files 

http://docs.oracle.com/javase/tutorial/deployment/jar/build.html

+0

переехал в: http://docs.oracle.com/javase/tutorial/deployment/jar/ build.html –

+1

Спасибо.Я обновил ссылку. – Yada

0

баночки только ZIP файлы, использовать любые утилиты вы хотите и редактировать прочь!

1

Отказ от ответственности: при обратном проектировании любого кода убедитесь, что вы остаетесь в рамках закона и придерживаетесь лицензии этого кода.

Следуйте инструкциям выше, чтобы распаковать JAR.

Найдите исходный источник JAR (возможно, его на SourceForge) и загрузите источник, измените источник и перестройте свой собственный JAR.

Вы также можете декомпилировать файлы классов в JAR. Это довольно продвинутый процесс и имеет много «ошибок».

2

Внесите изменения в код (.java-файлы), перекомпилируйте, чтобы получить файлы .class. Затем просто замените старые .class-файлы в банке новыми. Я обычно использую WinZip, но вы можете использовать любое приложение, которое может обрабатывать файлы .Zip. Он должен просто работать.

Я столкнулся с случаями, когда пусковая установка приложения использует какую-то проверку и проверяет такие изменения. Мне пришлось использовать новый сценарий запуска. Это, похоже, не ваше дело.

1

Возможно, это возможно из командной строки. Используйте u вариант для jar

из Java Tutorials:

jar uf jar-file input-file(s) 

«Любые файлы уже в архиве, имеющих один и тот же путь к файлу в виде файла добавляемого будут перезаписаны.»

См Updating a JAR File

Краткий тест показывает, что это быстро обновляет изменения обособленно от попыток удалить файл.

Я не видел этого ответа на другие темы об изменении файлов jar, и многие, отмеченные как дубликаты, предполагают, что нет альтернативы, кроме как полностью переделать банку. Исправьте, если ошибаетесь.

Смежные вопросы