Як читати .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і я не в змозі продовжувати далі.

Чи може хтось допомогти мені в цьому питанні?


5
Не використовуйте chmod 777для стисненого файлу. Для його читання вам не потрібен біт виконання. Сейф 644або 640рекомендується.
Брайам

Дивіться офіційні документи Java: docs.oracle.com/javase/tutorial/deployment/jar/view.html
slm

Це /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/


3
jar -xvf *warне працюватиме, якщо в поточному каталозі є більше одного файлу війни. tar -xvfzвзагалі не буде працювати, ви плутаєте gzipped файли та блискавки.
jlliagre

Це правда, я не хотів зробити висновок, що це буде працювати з кількома війнами, просто щоб ви могли використовувати цю команду дослівно для будь-якої однієї війни. Я це змінив
JZeolla

1
Я думаю, що краще використовувати, jar -tvfа не запропонований jar -xvfспосіб. Таким чином, файли не витягуються (і забруднюють ваші дані.), А просто перераховуються.
Dror Cohen

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/

4

Якщо ви не хочете витягувати файл, ви можете використовувати його vim filename.warдля читання вмісту. Ви можете прочитати підкаталоги файлів, вибравши їх та натиснувши клавішу Enter.


Для цього вам потрібно встановити пакет unzip.
Thaoden


0

Окрім вилучення їх за допомогою jar або unzip, ви також можете використати Midnight Commander (mc) та перейти до цих файлів і натиснути Enter на них так, ніби вони були каталогіми.

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

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

Я не повторю відповіді unzip / fastjar / jar, але вони також правильні.


0

Якщо команди Unix не працюють, ftp файл на локальній машині.

.jarабо .warабо .earбудь-архівний файл може бути відкритий в 7-Zip, виконавши такі дії -

  1. Клацніть правою кнопкою миші архівний файл
  2. 7-Zip
  3. Відкрити архів

Ви повинні мати можливість бачити весь вміст архівного файлу. Тепер перегляньте папку / файл, а потім клацніть правою кнопкою миші -> редагуйте файл -> збережіть файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.