2013-04-05 10 views
47

Desidero estrarre uno dei miei oggetti nella directory specificata utilizzando l'utilità della riga di comando jar.Estrarre il vaso nella directory specificata

se ho capito diritto di opzione -C dovrebbe per il trucco, ma quando provo

jar xvf myJar.jar -C ./directoryToExtractTo 

sto ottenendo le informazioni di utilizzo dal mio programma di utilità vaso, così sto facendo qualcosa di sbagliato.

è la cosa che voglio ottenibile con jar o ho bisogno di spostare manualmente mio vaso e ci invocare

jar xvf myJar.jar 
+3

Penso che '-C' è solo per l'aggiunta di file. –

+0

Forse, ho pensato che è anche per specyfying la directory di output. – Andna

risposta

40

E 'meglio fare questo.

Accedere alla struttura di cartelle che si richiedono

utilizzare il comando

jar -xvf 'Path_to_ur_Jar_file' 
+6

Di couse Potrei fare questo e sono d'accordo con il fatto che posso farlo, volevo solo sapere se ho interpretato male l'opzione -C, e sembra che sia così. – Andna

+0

Forse questo è l'unico modo per specificare la posizione di destinazione tramite "jar xf". –

+0

mi dà errore: "Opzione non riconosciuta -xvf – Rushi

40

vasi usano la compressione zip in modo da poter utilizzare qualsiasi utilità di decompressione.

Esempio:

$ unzip myJar.jar -d ./directoryToExtractTo

+15

'decomprimi myJar.jar -d out-directory 'per Xubuntu 12.04.1 –

+1

Ho avuto problemi in passato usando zip per creare un barattolo (NON è equivalente all'utilizzo del comando jar) ma non posso parlare di decomprimere. Il mio consiglio è di usarlo a vostro rischio e pericolo preferisco usare il comando jar – Ring

+0

gunzip si lamenta del fatto che il barattolo ha più di una voce – Almo

8

Non esiste opzione disponibile nel comando jar sé. Cerca in the documentation:

dir -C modificare temporaneamente directory (cd dir) durante l'esecuzione del comando vaso durante l'elaborazione del seguente argomento inputfiles. L'operazione è simile all'opzione -C dell'utilità di tar UNIX . Ad esempio: jar uf foo.jar -C classes bar.class cambia nella directory classes e aggiunge la barra.class da tale directory a foo.jar. Il seguente comando, jar uf foo.jar -C classes. -C bin xyz.class passa alla directory classes e aggiunge a foo.jar tutti i file all'interno della directory classes (senza creare una directory nel file jar), quindi torna alla directory originale prima di passare alla directory directory bin per aggiungere xyz.class a foo.jar. Se le classi contiene i file bar1 e bar2, allora ecco cosa il file jar contiene utilizzando jar tf foo.jar: META-INF/

META-INF/MANIFEST.MF

bar1

bar2

xyz.class

-1

Questo ha funzionato per me.

Ho creato una cartella quindi modificata nella cartella utilizzando l'opzione CD dal prompt dei comandi.

Quindi ha eseguito il barattolo da lì.

d:\LS\afterchange>jar xvf ..\mywar.war 
Problemi correlati