2013-04-05 1 views
47

Ich wollte eines meiner Jars in das angegebene Verzeichnis extrahieren, indem Sie das Befehlszeilendienstprogramm jar verwenden.Extrahieren von JAR in das angegebene Verzeichnis

Wenn ich verstehe dieses Recht -C Option auf den Trick sollte aber wenn ich versuche

jar xvf myJar.jar -C ./directoryToExtractTo 

Ich erhalte Nutzungsinformationen aus meinem Glas Dienstprogramm, so dass ich etwas falsch zu machen.

Ist das, was ich mit jar erreichbar will oder muss ich mein Glas manuell bewegen müssen und dort

jar xvf myJar.jar 
+3

Ich denke '-C' ist nur zum Hinzufügen von Dateien. –

+0

Vielleicht dachte ich, dass es auch für das Ausgabeverzeichnis ist. – Andna

Antwort

40

Es ist besser zu berufen, dies zu tun.

Navigieren Sie zu dem Ordner-Struktur benötigen Sie

den Befehl

jar -xvf 'Path_to_ur_Jar_file' 
+6

Natürlich könnte ich das tun und ich stimme mit, dass ich das tun kann, wollte ich nur wissen, wenn ich -C-Option fehlinterpretierte, und es scheint, dass der Fall ist. – Andna

+0

Vielleicht ist das die einzige Möglichkeit, den Zielort über "jar xf" anzugeben. –

+0

gibt es Fehler für mich: "Unbekannte Option -xvf – Rushi

40

Gläser ZIP-Komprimierung verwenden, so dass Sie jede Entpackprogramm verwenden können.

Beispiel:

$ unzip myJar.jar -d ./directoryToExtractTo

+15

'entpacken myJar.jar -d out-Verzeichnis 'für Xubuntu 12.04.1 –

+1

Ich hatte in der Vergangenheit Probleme mit zip, um ein jar zu erstellen (es ist NICHT äquivalent zur Verwendung des jar Befehls), aber ich kann nicht für das Entpacken sprechen.Ihre Empfehlung ist es, dies auf eigene Gefahr zu tun Gefallen mit dem Befehl jar – Ring

+0

gunzip beklagt, dass das Glas mehr als einen Eintrag hat – Almo

8

Es gibt keine solche Option in jar Befehl selbst. Schauen Sie in the documentation:

-C dir Vorübergehend ändert Verzeichnisse (cd dir) während der Ausführung des Befehls jar, während die folgende Eingabedateien Argument Verarbeitung. Seine Operation soll ähnlich der -C-Option des UNIX-Programms tar sein. Zum Beispiel: jar uf foo.jar -C Klassen bar.class ändert in das Klassenverzeichnis und fügt die bar.class aus diesem Verzeichnis zu foo.jar hinzu. Der folgende Befehl, jar uf foo.jar -C Klassen. -C bin xyz.class ändert sich in das Klassenverzeichnis und fügt foo.jar alle Dateien innerhalb des Klassenverzeichnisses hinzu (ohne ein Verzeichnis der Klassen in der JAR-Datei zu erstellen), wechselt dann zurück zum ursprünglichen Verzeichnis , bevor es in das Verzeichnis wechselt bin-Verzeichnis zum Hinzufügen von xyz.class zu foo.jar. Wenn Klassen-Dateien bar1 und bar2 hält, dann ist hier, was die jar-Datei mit jar tf foo.jar enthält: META-INF/

META-INF/MANIFEST.MF

bar1

bar2

-1

Das funktionierte für mich.

Ich habe einen Ordner erstellt dann in den Ordner mit CD-Option von der Eingabeaufforderung geändert.

Dann das Glas von dort ausgeführt.