web-dev-qa-db-fra.com

Extraction du fichier jar dans le répertoire spécifié

Je voulais extraire l'un de mes fichiers JAR dans le répertoire spécifié à l'aide de l'utilitaire de ligne de commande jar.

Si je comprends bien cette bonne option -C devrait faire l'affaire, mais quand j'essaie 

jar xvf myJar.jar -C ./directoryToExtractTo

Je reçois des informations sur l’utilisation de mon utilitaire jar, je fais donc quelque chose de mal.

Est-ce que ce que je veux est réalisable avec jar ou dois-je déplacer manuellement mon pot et y invoquer 

jar xvf myJar.jar
60
Andna

C'est mieux de faire ça.

Accédez à la structure de dossiers dont vous avez besoin

Utilisez la commande 

jar -xvf  'Path_to_ur_Jar_file'

les bocaux utilisent la compression Zip afin que vous puissiez utiliser n’importe quel utilitaire de décompression. 

Exemple:

$ unzip myJar.jar -d ./directoryToExtractTo

58
Amit Maniar

Cette option n'existe pas dans la commande jar elle-même. Regardez dans la documentation :

-C dir Change temporairement les répertoires (cd dir) lors de l'exécution de la commande jar lors du traitement de l'argument inputfiles suivant . Son fonctionnement est similaire à l’option -C de UNIX utilitaire de goudron. Par exemple: jar uf foo.jar -C classes bar.class change dans le répertoire classes et ajoutez le fichier bar.class de ce répertoire à foo.jar. La commande suivante, jar uf foo.jar -C classes. -C bin xyz.class passe au répertoire des classes et ajoute à foo.jar tout fichiers dans le répertoire classes (sans créer un répertoire classes dans le fichier jar), puis revient au fichier .__ original. répertoire avant de passer au répertoire bin pour ajouter xyz.class à foo.jar. Si classes contient les fichiers bar1 et bar2, voici ce que le fichier Le fichier jar contient l'utilisation de jar tf foo.jar: META-INF /

META-INF/MANIFEST.MF

bar1

bar2

xyz.class

11
glory1

Au cas où vous ne voudriez pas changer votre répertoire de travail actuel, il serait peut-être plus facile d'exécuter une commande d'extraction dans un sous-shell comme celui-ci.

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

Vous pouvez ensuite exécuter ce script à partir de n'importe quel répertoire de travail.

[Merci à David Schmitt pour l'astuce du sous-shell]

2
Montri M

Cela a fonctionné pour moi.

J'ai créé un dossier puis changé dans le dossier en utilisant l'option CD de la commande Invite.

Puis exécuté le pot à partir de là.

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

C'est ce que j'ai fini par utiliser dans mon fichier .bat. Windows uniquement, bien sûr.

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