144 votes

Extraction d'un fichier .jar en ligne de commande

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

Je fonctionne sous Windows 7

213voto

AusCBloke Points 10179

De les docs :

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

C:\Java> jar xf myFile.jar

Pour n'extraire que certains fichiers d'un fichier jar, indiquez leur nom :

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

Le dossier dans lequel jar n'est probablement pas C:\Java pour vous, sur ma partition Windows c'est :

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

Sauf si l'emplacement du jar se trouve dans votre variable d'environnement path, 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

45voto

Hot Licks Points 25075

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

8 votes

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

41voto

burtsevyg Points 181

Dans Ubuntu :

unzip file.jar -d dir_name_where_extracting

3 votes

Utile pour les systèmes qui n'ont pas de jar commandement ! Fonctionne sans problème sur CentOS 5.7

10voto

Nikhil Arora Points 1

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

X représente l'extraction et le f serait toute option indiquant que le fichier JAR à partir duquel les fichiers doivent être extraits est spécifié sur la ligne de commande, plutôt que par l'intermédiaire de stdin.

3voto

D3_JMultiply Points 374

Java dispose d'une classe spécifique pour les fichiers zip et d'une autre encore plus spécifique pour les fichiers Jar.

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

à l'aide de ces derniers, vous pourriez, par une commande de la console, à l'aide d'un scanner réglé sur system.in

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

puis récupère tous les composants et les écrit dans un 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 ZipInputStream.

Une autre solution consiste à utiliser getNextEntry au lieu de getNextJarEntry

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X