Jak odczytać plik .war?

17

Próbuję wyświetlić zawartość pliku .war. Najpierw ustawiłem jego uprawnienia, chmod 777kiedy próbowałem uzyskać do niego dostęp za pomocą:

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

Daje cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directoryi nie jestem w stanie iść dalej.

Czy ktoś może mi pomóc w tej sprawie?

użytkownik1660325
źródło
5
Nie używaj chmod 777w skompresowanym pliku. Nie potrzebujesz bitu wykonania do odczytu. Bezpieczne 644lub 640zalecane.
Braiam
Zobacz oficjalne dokumenty Java: docs.oracle.com/javase/tutorial/deployment/jar/view.html
slm
Czy /usr/local/standalone/deployments/Sample.warkatalog lub plik?
jlliagre

Odpowiedzi:

21

Pliki .war są spakowane. Możesz wyodrębnić informacje za pomocą jednego z następujących poleceń:

jar -xvf Sample.war
unzip Sample.war

Powinieneś być w stanie uruchomić cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

JZeolla
źródło
3
jar -xvf *warnie będzie działać, jeśli w bieżącym katalogu znajduje się więcej niż jeden plik wojenny. tar -xvfzw ogóle nie będzie działać, mylisz pliki spakowane i spakowane.
jlliagre
To prawda, nie chciałem wnioskować, że będzie działać z wieloma wojnami, tylko że można użyć tego polecenia dosłownie w każdej wojnie. Zmieniłem to
JZeolla,
1
Myślę, że lepiej jest używać, jar -tvfa nie proponowany jar -xvfsposób. Więc pliki nie są wyodrębniane (i zanieczyszczają twoje.), Ale tylko wymienione.
Dror Cohen
8

.war pliki są spakowanymi archiwami.

Możesz wymienić ich zawartość

jar tvf Sample.war

lub

zipinfo Sample.war

Jeśli chcesz zobaczyć zawartość plików przechowywanych w archiwum, najpierw musisz go gdzieś wypakować:

mkdir /tmp/foo
cd /tmp/foo
unzip /usr/local/standalone/deployments/Sample.war
ls -l WEB-INF/classes/
jlliagre
źródło
4

Jeśli nie chcesz rozpakowywać pliku, możesz użyć go vim filename.wardo odczytania zawartości pliku. Możesz czytać podkatalogi plików, wybierając je i naciskając enter.

Martin Agfjord
źródło
Aby to zadziałało, musisz unzipzainstalować pakiet .
Thaoden
1

Najpierw musisz wyodrębnić plik wojny jar xvf Sample.war. Następnie możesz cd do pliku wojny.

Manula Waidyanatha
źródło
0

Oprócz wyodrębnienia ich za pomocą jar lub rozpakowania, możesz także użyć Midnight Commander (mc) i nawigować do tych plików i nacisnąć klawisz Enter na nich, jakby były katalogami.

Jeśli to nie zadziała od razu, twój smak mc nie jest skonfigurowany tak, aby znać sufiks .war, ale nadal możesz korzystać z tej funkcji, wpisując albo cd Sample.war # uzip (stary mc) lub cd Sample.war / uzip: // (mc w Debianie niestabilny) i naciśnięcie Enter. Dodatkową korzyścią jest naciśnięcie klawisza Escape, a następnie Enter (w niektórych terminalach również Alt-Enter, ale nie jest to przenośne, więc nie zależą od niego) wstawia bieżącą nazwę pliku do wiersza poleceń, ale trzeba także nacisnąć klawisz Backspace, ponieważ dodaje spację, a #uzip lub / uzip: // musi natychmiast podążać za nazwą pliku.

Jest to znane jako mc VFS (wirtualny system plików).

Nie powtórzę tutaj odpowiedzi na rozpakowanie / fastjar / jar, ale są one również poprawne.

mirabilos
źródło
0

Jeśli polecenia unix nie działają, ftp plik na komputer lokalny.

.jarlub .warlub .eardowolny plik archiwum może być otwarty w 7-Zip, wykonując czynności -

  1. Kliknij plik archiwum prawym przyciskiem myszy
  2. 7-Zip
  3. Otwórz archiwum

Powinieneś być w stanie zobaczyć całą zawartość pliku archiwum. Teraz przejrzyj folder / plik, a następnie kliknij prawym przyciskiem myszy -> edytuj plik -> zapisz plik.

Arunchunaivendan
źródło