it-swarm.com.de

Jar in das angegebene Verzeichnis extrahieren

Ich wollte eines meiner Gläser mit dem jar-Befehlszeilenprogramm in das angegebene Verzeichnis extrahieren.

Wenn ich dieses Recht verstehe, sollte -C Option zum Trick kommen, aber wenn ich es versuche 

jar xvf myJar.jar -C ./directoryToExtractTo

Ich bekomme Nutzungsinformationen von meinem Jar-Dienstprogramm, also mache ich etwas falsch.

Ist das, was ich mit jar erreichen möchte, oder muss ich mein Glas manuell verschieben und dort aufrufen 

jar xvf myJar.jar
60
Andna

Es ist besser, dies zu tun.

Navigieren Sie zu der gewünschten Ordnerstruktur

Verwenden Sie den Befehl 

jar -xvf  'Path_to_ur_Jar_file'

gläser verwenden die Zip-Komprimierung, sodass Sie ein beliebiges Entpack-Programm verwenden können. 

Beispiel:

$ unzip myJar.jar -d ./directoryToExtractTo

58
Amit Maniar

Im jar-Befehl selbst ist keine solche Option verfügbar. Schauen Sie in die Dokumentation :

-C dir Ändert temporär Verzeichnisse (cd dir) während der Ausführung des JAR-Befehls, während das folgende Eingabedatei-Argument ..__ verarbeitet wird. Der Betrieb soll der Option -C der UNIX-Funktion __ ähneln. tar Dienstprogramm. Zum Beispiel: jar uf foo.jar -C Klassen bar.class ändert sich in das classes-Verzeichnis und fügen Sie die bar.class aus diesem Verzeichnis zu .__ hinzu. foo.jar. Der folgende Befehl ist jar uf foo.jar -C Klassen. -C bin xyz.class wechselt in das Klassenverzeichnis und fügt alle Dateien in der Datei foo.jar hinzu Dateien innerhalb des Klassenverzeichnisses (ohne ein Klassenverzeichnis in der JAR-Datei zu erstellen), wechselt dann wieder zum ursprünglichen Verzeichnis, bevor Sie in das Bin-Verzeichnis wechseln, um xyz.class zu .__ hinzuzufügen. foo.jar. Wenn Klassen die Dateien bar1 und bar2 enthalten, dann ist hier die JAR-Datei enthält jar tf foo.jar: META-INF /

META-INF/MANIFEST.MF

bar1

bar2

xyz.class

11
glory1

Falls Sie Ihr aktuelles Arbeitsverzeichnis nicht ändern möchten, ist es möglicherweise einfacher, den Befehl extract in einer solchen Unterschale auszuführen.

mkdir -p "/path/to/target-dir"
(cd "/path/to/target-dir" && exec jar -xf "/path/to/your/war-file.war")

Sie können dieses Skript dann von jedem Arbeitsverzeichnis aus ausführen.

[Danke an David Schmitt für den Subshell-Trick]

2
Montri M

Das hat bei mir funktioniert.

Ich habe einen Ordner erstellt und dann mit der Option CD über den Befehl Eingabeaufforderung in den Ordner geändert.

Dann das Glas von dort ausgeführt.

d:\LS\afterchange>jar xvf ..\mywar.war
1
Ashok Ogirala

Das ist es, was ich in meiner .bat-Datei verwendet habe. Windows natürlich nur.

set CURRENT_DIR=%cd%
mkdir ./directoryToExtractTo
cd ./directoryToExtractTo
jar xvf %CURRENT_DIR%\myJar.jar
cd %CURRENT_DIR%
0