Extraction du fichier .jar avec la ligne de commande


116

J'essaye d'extraire les fichiers d'un fichier .jar. Comment faire cela en utilisant la ligne de commande?

J'utilise Windows 7

Réponses:


148

À partir de la documentation :

Pour extraire les fichiers d'un fichier jar, utilisez x, comme dans:

C:\Java> jar xf myFile.jar

Pour extraire uniquement certains fichiers d'un fichier jar, indiquez leurs noms de fichiers:

C:\Java> jar xf myFile.jar foo bar

Le dossier où se jartrouve probablement n'est pas C:\Javapour vous, sur ma partition Windows c'est:

C:\Program Files (x86)\Java\jdk[some_version_here]\bin

Sauf si l'emplacement de jarest dans votre variable d'environnement de chemin, vous devrez spécifier le chemin complet / exécuter le programme à partir du dossier.

EDIT: Voici un autre article, spécifiquement axé sur l'extraction des JAR: http://docs.oracle.com/javase/tutorial/deployment/jar/unpack.html


Ok, quand je fais cette commande jar xf ..., j'obtiens l'erreur: 'jar' n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes. Comment puis-je réparer ça?
Bobby C

1
@BobbyC: spécifiez le chemin d'accès complet jar.exeou exécutez-le depuis l'intérieur du dossier.
AusCBloke

Merci, tout va bien maintenant!
Bobby C du

2
java.io.IOException: META-INF: impossible de créer le répertoire sur sun.tools.jar.Main.extractFile (Main.java:928) sur sun.tools.jar.Main.extract (Main.java:852) at sun .tools.jar.Main.run (Main.java:242) à sun.tools.jar.Main.main (Main.java:1149) comment supprimer cette erreur?
AnilPatel

1
@AnilPatel J'ai corrigé cela en exécutant l'invite de commande en tant qu'administrateur (clic droit "exécuter en tant qu'administrateur")
jessieloo

34

Notez qu'un fichier jar est un fichier Zip et que tout outil Zip (tel que 7-Zip) peut regarder à l'intérieur du fichier jar.


6
Regardez ici, c'est ce dont vous avez tous besoin.
Ali

28

Dans Ubuntu:

unzip file.jar -d dir_name_where_extracting


1
Utile pour les systèmes qui n'ont pas de jarcommande! Fonctionne sans aucun problème sur CentOS 5.7
djthoms

8

Vous pouvez utiliser la commande suivante: jar xf rt.jar

Xreprésente l'extraction et les foptions seraient toutes les options indiquant que le fichier JAR à partir duquel les fichiers doivent être extraits est spécifié sur la ligne de commande, plutôt que via stdin.


2

Java a une classe spécifiquement pour les fichiers zip et encore plus spécifiquement pour les fichiers Jar.

java.util.jar.JarOutputStream
java.util.jar.JarInputStream

en utilisant ceux que vous pourriez, sur une commande de la console, en utilisant un scanner défini sur system.in

Scanner console = new Scanner(System.in);
String input = console.nextLine();

puis récupérez tous les composants et écrivez-les sous forme de fichier.

JarEntry JE = null;
while((JE = getNextJarEntry()) != null)
{
    //do stuff with JE
}

Vous pouvez également utiliser java.util.zip.ZipInputStream à la place, car si un fichier JAR est au même format qu'un fichier ZIP, ZipInputStream sera capable de gérer le fichier Jar, en fait JarInputStream étend réellement ZipInputStream.

une alternative est également au lieu de getNextJarEntry, pour utiliser getNextEntry


2

jar xf myFile.jar
changez myFile en nom de votre fichier
cela enregistrera le contenu dans le dossier actuel du fichier .jar
qui devrait faire :)


0

Étant donné un fichier nommé Me.Jar:

  1. Aller à cmd
  2. Appuyez sur Entrée
  3. Utilisez la jarcommande Java - J'utilise jdk1.8.0_31 donc je tape

    C: \ Program Files (x86) \ Java \ jdk1.8.0_31 \ bin \ jar xf me.jar

Cela devrait extraire le fichier dans la corbeille du dossier. Cherchez le fichier .class dans mon cas mon Me.jar contient un Valentine.class

Type java Valentineet appuyez sur Entrée et votre fichier de message sera ouvert.


-3

Pour extraire le fichier jar dans le dossier spécifié, utilisez cette commande via l'invite de commande

C:\Java> jar xf myFile.jar -C "C:\tempfolder"

7
Cela ne marche pas. -Cne peut être utilisé que lors de la création de fichiers jar.
unwichtich

@unwichtich Dans ce cas, existe-t-il un moyen de spécifier le dossier de destination?
Ligne

2
Sur les systèmes Linux que vous pouvez utiliser unzip file.jar -d dir_name_where_extracting, sous Windows, vous devez copier / déplacer votre JAR dans le dossier de destination, puis l'extraire là-bas ...
unwichtich
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.