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

Bobby C
la source

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

AusCBloke
la source
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.

Hot Licks
la source
6
Regardez ici, c'est ce dont vous avez tous besoin.
Ali
28

Dans Ubuntu:

unzip file.jar -d dir_name_where_extracting

burtsevyg
la source
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.

Nikhil Arora
la source
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

D3_JMultiplier
la source
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 :)

abe312
la source
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.

utilisateur4566153
la source
-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"
VijayaKumar Thangavel
la source
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