Как прочитать файл .war?

17

Я пытаюсь просмотреть содержимое файла .war. Сначала я установил его права доступа, а chmod 777затем попытался получить доступ к нему, используя:

cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

Это дает, cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directoryи я не могу продолжать дальше.

Может кто-нибудь помочь мне в этом вопросе?

user1660325
источник
5
Не используйте chmod 777на сжатом файле. Вам не нужен бит выполнения для его чтения. Сейф 644или 640рекомендуется.
Брайам
Смотрите официальные Java документы: docs.oracle.com/javase/tutorial/deployment/jar/view.html
ОДС
Это /usr/local/standalone/deployments/Sample.warкаталог или файл?
Jlliagre

Ответы:

21

.war файлы упакованы. Вы можете извлечь информацию, используя любую из следующих команд:

jar -xvf Sample.war
unzip Sample.war

Вы должны быть в состоянии бежать cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

JZeolla
источник
3
jar -xvf *warне будет работать, если в текущем каталоге более одного файла war. tar -xvfzне будет работать вообще, вы путаете сжатые и сжатые файлы.
Jlliagre
Это правда, я не хотел делать вывод, что это будет работать с несколькими войнами, просто чтобы вы могли дословно использовать эту команду для любой войны. Я изменил это
JZeolla
1
Я думаю, что лучше использовать, jar -tvfа не предложенный jar -xvfспособ. Таким образом, файлы не извлекаются (и загрязняют ваши.), А просто перечислены.
Дрор Коэн
8

.war файлы заархивированы архивами.

Вы можете перечислить, что они содержат с

jar tvf Sample.war

или

zipinfo Sample.war

Если вы хотите увидеть содержимое файлов, хранящихся в архиве, вам нужно сначала извлечь его куда-нибудь:

mkdir /tmp/foo
cd /tmp/foo
unzip /usr/local/standalone/deployments/Sample.war
ls -l WEB-INF/classes/
jlliagre
источник
4

Если вы не хотите извлекать файл, вы можете использовать его vim filename.warдля чтения содержимого. Вы можете прочитать подкаталоги файлов, выбрав их и нажав Enter.

Мартин Агфьорд
источник
Чтобы это работало, вам нужен unzipустановленный пакет .
Таоден
1

Сначала вы должны извлечь файл войны jar xvf Sample.war. Затем вы можете перейти в файл войны.

Манула Вайдьянатха
источник
0

Помимо извлечения их с помощью jar или unzip, вы также можете использовать Midnight Commander (mc) и перейти к этим файлам и нажать Enter на них, как если бы они были каталогами.

Если это не сработает сразу, ваш вариант mc не настроен на использование суффикса .war, но вы все равно можете использовать эту функцию, набрав cd Sample.war # uzip (old mc) или cd Sample.war / uzip: // (mc в Debian нестабильный) и нажатие Enter. Как дополнительное преимущество, нажатие Escape, затем Enter (в некоторых терминалах также Alt-Enter, но это не переносимо, поэтому не зависит от него) вставляет текущее имя файла в командную строку, но вам также придется нажимать Backspace, потому что он добавляет пробел, и #uzip или / uzip: // должны следовать сразу за именем файла.

Это известно как mc VFS (виртуальная файловая система).

Я не буду повторять ответы unzip / fastjar / jar здесь, но они также правильны.

mirabilos
источник
0

Если команды unix не работают, загрузите файл на локальный компьютер.

.jarили .warили .earлюбой архивный файл может быть открыт в 7-Zip, выполнив указанные ниже действия -

  1. Щелкните правой кнопкой мыши файл архива
  2. 7-Zip
  3. Открыть архив

Вы должны быть в состоянии увидеть все содержимое файла архива. Теперь просмотрите папку / файл и затем щелкните правой кнопкой мыши -> отредактируйте файл -> сохраните файл.

Arunchunaivendan
источник