web-dev-qa-db-fra.com

JAR - extraction de fichiers spécifiques

J'ai des fichiers .class et .Java dans l'archive JAR. Existe-t-il un moyen d'extraire uniquement des fichiers .Java de celui-ci? J'ai essayé cette commande mais cela ne fonctionne pas:

jar xf jar-file.jar *.Java
24
user3521479

Vous pouvez utiliser la commande unzip qui accepte les caractères génériques dans ses arguments (ce qui n'est pas le cas de la commande jar). Quelque chose comme ça devrait faire l'affaire (avertissement: non testé)

unzip youFile.jar "*.Java"
30
Pierre Rust

De la source:

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

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

L'utilisation de caractères génériques est une chose Shell, et vous ne devriez pas vous attendre à ce que cela fonctionne lorsque extraire à partir d'un fichier JAR (qui, comme vous l'avez compris, est le Cas).

Ce que vous pouvez faire, c'est fournir une liste des fichiers que vous souhaitez extraire, via le @ modificateur:

jar xf my.jar @myfiles.lst

myfiles.lst serait:

com/my/MyClass.Java
com/my/MySecondClass.Java

Ce fichier pourrait facilement être créé automatiquement avec une utilisation créative de jar tvf, awk et le modèle d'extraction souhaité. Je vais laisser cela comme un exercice et/ou un autre SO question :-)

Ou vous pouvez utiliser unzip - un fichier JAR est essentiellement un fichier Zip.

À votre santé,

29
Anders R. Bystrup