Ich versuche, den Inhalt einer .war-Datei anzuzeigen. Ich habe seine Berechtigungen zuerst mit chmod 777
festgelegt, dann, wenn ich versuche, darauf zuzugreifen, indem ich:
cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/
Es gibt cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directory
und ich kann nicht weiter vorgehen.
Kann mir jemand bei diesem Problem helfen?
Kommentare
- Verwenden Sie ' nicht
chmod 777
für eine komprimierte Datei. Sie benötigen ' kein Ausführungsbit zum Lesen. Ein sicheres644
oder640
wird empfohlen. - Siehe die offiziellen Java-Dokumente: docs.oracle.com/javase/tutorial/deployment/jar/view.html
- Ist
/usr/local/standalone/deployments/Sample.war
ein Verzeichnis oder ein Datei?
Antwort
.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, cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/
Kommentare
-
jar -xvf *war
hat ' t gewonnen funktionieren, wenn sich mehr als eine Kriegsdatei im aktuellen Verzeichnis befindet.tar -xvfz
funktioniert ' überhaupt nicht, Sie verwechseln komprimierte und komprimierte Dateien. - Dies ist wahr, Ich wollte nicht ' 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
- Ich denke, es ist ' besser,
jar -tvf
und nicht die vorgeschlagenejar -xvf
Weise. Dateien werden also nicht ' extrahiert (und kontaminieren Ihre.), Sondern nur aufgelistet.
Antwort
.war
Dateien sind komprimierte Archive.
Sie können entweder
oder
zipinfo Sample.war
Wenn Sie den Inhalt von Dateien anzeigen möchten, die in einem Archiv gespeichert sind, müssen Sie ihn zuerst irgendwo extrahieren :
mkdir /tmp/foo cd /tmp/foo unzip /usr/local/standalone/deployments/Sample.war ls -l WEB-INF/classes/
Antwort
Wenn Sie die Datei nicht extrahieren möchten Sie können vim filename.war
verwenden, um den Inhalt der Datei zu lesen. Sie können Unterverzeichnisse von Dateien lesen, indem Sie sie auswählen und die Eingabetaste drücken.
Kommentare
- Damit dies funktioniert, muss das Paket
unzip
installiert sein.
Answer
Zuerst müssen Sie die Kriegsdatei jar xvf Sample.war
extrahieren. Dann können Sie in die Kriegsdatei cd.
Antwort
Wenn die Unix-Befehle nicht funktionieren, senden Sie die Datei an den lokalen Computer.
.jar
oder .war
oder .ear
Jede Archivdatei kann in 7-Zip geöffnet werden, indem Sie die folgenden Schritte ausführen –
- Klicken Sie mit der rechten Maustaste auf die Archivdatei.
- 7-Zip
- Archiv öffnen
Sie sollten in der Lage sein, die gesamte Archivdatei anzuzeigen Inhalt. Durchsuchen Sie nun den Ordner / die Datei und klicken Sie mit der rechten Maustaste -> bearbeiten Sie die Datei -> speichern Sie die Datei.
Antwort
Neben dem Extrahieren mit jar oder unzip können Sie auch den Midnight Commander (mc) verwenden und zu diesen Dateien navigieren und drücken Sie die Eingabetaste, als wären sie Verzeichnisse.
Wenn dies nicht sofort funktioniert, ist Ihre mc-Version nicht so konfiguriert, dass sie das .war-Suffix kennt. Sie können diese Funktion jedoch auch durch Eingabe verwenden cd Sample.war # uzip (altes mc) oder cd Sample.war / uzip: // (mc in Debian unstable) und Drücken der Eingabetaste. Als zusätzlichen Vorteil drücken Sie Escape und Enter (in einigen Terminals auch Alt-Enter, aber dies ist nicht portabel, hängt also nicht davon ab.) Fügt den aktuellen Dateinamen in die Befehlszeile ein. Sie müssen jedoch auch die Rücktaste drücken, da ein Leerzeichen hinzugefügt wird und #uzip oder / uzip: // sofort dem folgen muss Dateiname.
Dies ist als mc VFS (virtuelles Dateisystem) bekannt.
Ich werde die Antworten zum Entpacken / Fastjar / Jar hier nicht wiederholen, aber sie sind auch korrekt.