Wie lese ich eine .war-Datei?

17

Ich versuche, den Inhalt einer WAR-Datei anzuzeigen. Ich habe die Berechtigungen zum ersten Mal festgelegt, chmod 777als ich versuchte, sie mithilfe von zuzugreifen:

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

Es gibt cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directoryund ich kann nicht weiter vorgehen.

Kann mir jemand in dieser Frage helfen?

user1660325
quelle
5
Nicht chmod 777für komprimierte Dateien verwenden. Zum Lesen benötigen Sie kein Ausführungsbit. Ein Safe 644oder 640wird empfohlen.
Braiam
Weitere
Informationen finden
Ist /usr/local/standalone/deployments/Sample.warein Verzeichnis oder eine Datei?
jlliagre

Antworten:

21

WAR-Dateien werden gepackt. Sie können die Informationen mit einem der folgenden Befehle extrahieren:

jar -xvf Sample.war
unzip Sample.war

Sie sollten dann in der Lage sein zu laufen cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

JZeolla
quelle
3
jar -xvf *warfunktioniert nicht, wenn sich mehr als eine Kriegsdatei im aktuellen Verzeichnis befindet. tar -xvfzfunktioniert überhaupt nicht, Sie verwechseln komprimierte und komprimierte Dateien.
jlliagre
Dies ist wahr, ich wollte nicht darauf schließen, dass es mit mehreren Kriegen funktionieren würde, nur dass Sie diesen Befehl wörtlich für einen Krieg verwenden könnten. Ich habe es geändert
JZeolla
1
Ich denke, es ist besser, jar -tvfund nicht den vorgeschlagenen jar -xvfWeg zu verwenden. Dateien werden also nicht extrahiert (und kontaminieren Ihre.), Sondern nur aufgelistet.
Dror Cohen
8

.war Dateien sind komprimierte Archive.

Sie können entweder mit auflisten, was sie enthalten

jar tvf Sample.war

oder

zipinfo Sample.war

Wenn Sie den Inhalt von Dateien sehen möchten, die in einem Archiv gespeichert sind, müssen Sie diese zunächst an einer beliebigen Stelle extrahieren:

mkdir /tmp/foo
cd /tmp/foo
unzip /usr/local/standalone/deployments/Sample.war
ls -l WEB-INF/classes/
jlliagre
quelle
4

Wenn Sie die Datei nicht extrahieren möchten, können Sie vim filename.warden Inhalt der Datei lesen. Sie können Unterverzeichnisse von Dateien lesen, indem Sie sie auswählen und die Eingabetaste drücken.

Martin Agfjord
quelle
Damit dies funktioniert, muss das Paket unzipinstalliert sein.
Thaoden
1

Zuerst müssen Sie die Kriegsdatei extrahieren jar xvf Sample.war. Dann können Sie in die Kriegsdatei einsteigen.

Manula Waidyanatha
quelle
0

Sie können sie nicht nur mit jar oder unzip extrahieren, sondern auch mit dem Midnight Commander (mc) zu diesen Dateien navigieren und die Eingabetaste drücken, als wären sie Verzeichnisse.

Wenn dies nicht sofort funktioniert, ist Ihre Version von mc nicht so konfiguriert, dass Sie das Suffix .war kennen. Sie können diese Funktion jedoch weiterhin verwenden, indem Sie entweder cd Sample.war # uzip (alte mc) oder cd Sample.war / uzip eingeben: // (mc in Debian unstable) und drücke Enter. Als zusätzlichen Vorteil wird durch Drücken von Escape und anschließendem Eingeben (in einigen Terminals auch Alt-Enter, dies ist jedoch nicht portabel, hängt also nicht davon ab) der aktuelle Dateiname in die Befehlszeile eingefügt. Sie müssen jedoch auch die Rücktaste drücken, da es fügt ein Leerzeichen hinzu und das #uzip oder / uzip: // muss unmittelbar nach dem Dateinamen stehen.

Dies wird als mc VFS (virtuelles Dateisystem) bezeichnet.

Ich werde die unzip / fastjar / jar-Antworten hier nicht wiederholen, aber sie sind auch korrekt.

Mirabilos
quelle
0

Wenn die Unix-Befehle nicht funktionieren, übertragen Sie die Datei per FTP auf den lokalen Computer.

.jaroder .waroder eine .earbeliebige Archivdatei kann in 7-Zip geöffnet werden, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie mit der rechten Maustaste auf die Archivdatei
  2. 7-Zip
  3. Offenes Archiv

Sie sollten in der Lage sein, den gesamten Inhalt der Archivdatei anzuzeigen. Durchsuchen Sie nun den Ordner / die Datei und klicken Sie mit der rechten Maustaste -> bearbeiten Sie die Datei -> speichern Sie die Datei.

Arunchunaivendan
quelle