Подтвердить что ты не робот

Как извлечь .war файлы в java? ZIP против JAR

У меня есть веб-программа, где я хочу, чтобы пользователь мог импортировать файл .war, и я могу извлечь определенные файлы из файла .war. Я нашел две библиотеки классов: java.util.zip.* и java.util.jar.*. Насколько я понимаю, WAR файл - это специальный JAR файл, который является специальным ZIP файлом. Так было бы лучше использовать java.util.jar? Если файлы ZIP и JAR почти одинаковы, почему существует необходимость в двух разных библиотеках?

4b9b3361

Ответ 1

Если вы посмотрите на JarFile API, вы увидите, что это подкласс ZipFile.

Классы, специфичные для jar, в основном просто добавляют jar-специфические функции, такие как прямая поддержка атрибутов файла манифеста и т.д.

Это ООП "в действии"; поскольку файлы jar являются zip файлами, классы jar могут использовать zip-функции и предоставлять дополнительную утилиту.

Ответ 2

WAR файл - это просто файл JAR, чтобы извлечь его, просто выпустите следующую команду jar -

jar -xvf yourWARfileName.war

Если команда jar не найдена, что иногда происходит в командной строке Windows, укажите полный путь, то есть в моем случае это,

 c:\java\jdk-1.7.0\bin\jar -xvf my-file.war

Ответ 3

Просто переименуйте .war в .jar и разархивируйте его с помощью Winrar (или любого другого менеджера архива).

Ответ 4

Если вы используете Linux или Ubuntu, вы можете напрямую извлекать данные из файла .war.

Файл A war - это всего лишь файл jar, чтобы извлечь его, просто выполните следующую команду с помощью программы jar:

jar -xvf yourWARfileName.war

Ответ 5

Как вы сказали, банка представляет собой zip файл (не специальный тип, а просто простой старый почтовый индекс), поэтому можно было бы заставить библиотеку работать. Причиной является то, что средний человек, видя расширение *.zip, имеет тенденцию распаковывать его. Поскольку сервер приложений хочет, чтобы он был распакован, простое переименование позволяет людям просто распаковывать его по привычке. Аналогично, файл *.war также должен оставаться несжатым.

java.util.jar в основном добавляет дополнительные функции java.util.zip с очень небольшими дополнительными накладными расходами. Пусть java.util.jar будет помощником в публикации и т.д. И используйте его.

Ответ 6

Jar class/package предназначен для определенных механизмов Jar файлов, где в некоторых случаях используется манифест, который используется файлами Jar.

Класс/пакет Zip файлов обрабатывает любые сжатые файлы, которые включают файлы Jar, который является типом сжатого файла.

Таким образом, классы Jar расширяют классы пакетов Zip.