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
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
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
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]
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
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%