web-dev-qa-db-fra.com

Affichage du contenu d'un fichier .jar

Quel serait le moyen le plus simple de visualiser les classes, méthodes, propriétés, etc. dans un fichier jar? Je cherche quelque chose d’équivalent au très utile  Lutz Roeder .NET Reflector  - pour Java

170
Dani

En utilisant le JDK, jar -tf listera les fichiers dans le jar javap vous donnera plus de détails à partir d'un fichier de classe particulier.

223

Je les ouvre habituellement avec 7-Zip ... Cela permet au moins de voir les paquets, les classes et les ressources.
Si j’ai besoin de voir des méthodes ou des champs, j’utiliserais Jad mais bien sûr, il est préférable de s’appuyer sur (bien) JavaDoc ...

Maintenant, quelque part sur SO a été mentionné quelques plug-ins Eclipse, pour trouver dans quel fichier jar une classe est située, peut-être qu'ils peuvent faire plus (c'est-à-dire ce que vous avez demandé).

[EDIT] Référence au thread SO. Ce n’est pas ce qui est demandé, mais plutôt ce qui est lié, donc utile: Java: Comment savoir quel fichier jar utiliser avec un nom de classe?

47
PhiLho

Ce que j'utilise personnellement, c'est JD-GUI. C'est un «décompilateur» gratuit, car il vous permet de voir le code source, les classes et les objets dans les classes, ainsi que de voir la structure du fichier dans un menu arborescent à gauche. Cependant, cela ne vous permet pas de modifier les classes directement.

Site Web de JD-GUI: http://jd.benow.ca/

32
Azulflame

Noms de méthode, champs, etc.

En ajoutant un fichier jar à un projet dans un IDE, vous pouvez généralement voir les méthodes et les noms de champs, mais pas l'implémentation détaillée. NetBeans peut le faire, probablement Eclipse, probablement IntelliJ, etc. Vous pouvez parcourir la structure de jar directement dans l'EDI.

Juste le contenu

Pour tout ce qui concerne l'affichage du contenu, vous pouvez utiliser:

  • jar tvf jarfile.jar
  • winzip ou n'importe quel outil Zip

Le code source

Pour accéder au code source, vous utiliseriez un décompilateur tel que JAD ou l'une de ses interfaces ou un autre décompilateur. Si le code est obscurci, alors ...

15
John Doe

En étendant la réponse de Tom Hawtin, vous pouvez diriger la liste pour filtrer la classe ou les fichiers souhaités:

jar tf my-fat-jar-file.jar | grep filename

Cela devrait fonctionner sur bash/zsh et similaires, ou eshell d’emacs.

Informations complémentaires: https://docs.Oracle.com/javase/tutorial/deployment/jar/view.html

8
Jose Miguel

Utilisez WinRar. Il ouvrira la structure de dossiers pour vous de manière intacte. Permet également l'édition en archive, tout en préservant les chemins.

Après tout, un fichier JAR est une archive Zip uniquement.

7
M.N

Utilisez unzip -l <jar-file-name>.jar par exemple, si vous avez un fichier jar nommé test.jar, unzip -l test.jar listera le contenu du fichier jar.

Selon le manuel de la commande unzip avec l'option -l.

liste des fichiers d'archive (format court). Les noms, fichier non compressé Les tailles, dates de modification et heures des fichiers spécifiés sont imprimé, avec les totaux pour tous les fichiers spécifiés. Si UnZip était compilé avec OS2_EAS défini, L'option -l répertorie également les colonnes pour les tailles des attributs étendus OS/2 stockés et des listes de contrôle d'accès OS/2. En outre, le commentaire zipfile et les commentaires de fichiers individuels (le cas échéant) sont affichés. Si un fichier était archivé à partir d'un système de fichiers à cas unique (par exemple, l'ancien système de fichiers FAT MS-DOS) et l'option -L a été donnée, le fichier. le nom de fichier est converti en minuscule et est précédé d'un caret (^)

Vous pouvez également utiliser zipinfo <your jar file>. si votre système d'exploitation le supporte. 

7
Amit Khandelwal

Si vous aimez voir ce qui se trouve à l'intérieur, renommez simplement la première option ci-dessous.

  1. F2 & Rename to jarfile.Zip // Utilisez n'importe quel fichier de décompression ...

  2. jar tvf jarfile.jar 

  3. jar tf jarfile.jar

6
Some Java Guy

Si je comprends bien, vous voulez voir non seulement les classes, mais aussi les méthodes, les propriétés, etc. Le seul outil que je connaisse qui puisse le faire est Eclipse. Si vous ajoutez un fichier jar au projet classpath, vous pourrez parcourir ses classes à l'aide de méthodes et de propriétés à l'aide de l'explorateur de packages habituel.

Quoi qu’il en soit, c’est une bonne idée pour un bon outil Java autonome.

5
Yoni Roit

Jad est klunky et n'est plus maintenu. Je suis passé à "Java Decompiler" , qui possède une interface utilisateur fluide et supporte les nouvelles fonctionnalités du langage. 

Chaque décompilateur que j'ai utilisé, cependant, se heurte à du code qu'il ne décompile pas correctement. Pour ceux-là, il est utile de comprendre le code d'octet Java désassemblé produit par l'outil JDK standard, javap .

4
erickson

Eh bien, un fichier JAR est juste un fichier Zip, donc si vous le décompressez (avec votre utilitaire de décompression préféré), vous obtenez tous les fichiers à l'intérieur. 

Si vous voulez regarder à l'intérieur des fichiers de classe pour voir les méthodes, vous aurez besoin d'un outil pour cela. Comme PhiLho le mentionne, Eclipse est capable de le faire (par défaut), et je pense que la plupart des IDE Java sont capables de cela.

3
Jeroen Heijmans

Dans Eclipse 3.4 do

  1. Faites glisser le fichier jar en question dans un projet Java. Une copie du fichier jar apparaît.
  2. Faites un clic droit sur le fichier jar et choisissez "Chemin de construction" -> "Ajouter au chemin de construction". 
  3. Le fichier JAR est déplacé vers le noeud "Bibliothèques référencées", où il peut être ouvert et parcouru dans le volet Explorateur de projets. 

Si le fait de voir le code source pose également un problème, ouvrez une nouvelle question.

Pour la navigation au niveau du fichier JAR (en tant que fichier Zip), j'utilise 7Zip, qui fonctionne très bien et permet de voir et d’éditer les entrées, ce qui est très utile en cas de problème.

Si vous êtes dans Windows et que vous utilisez powershell et que vous recherchez un fichier dans un pot, vous pouvez faire:

jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}
3
james

Une façon de faire est d'ouvrir la perspective dans "Package Explorer". En faisant cela, vous pouvez voir la structure de votre pot avec les détails de la classe. Pour cela, vérifiez le dossier de la bibliothèque dans votre projet à l'aide de l'Explorateur de packages.

Fenêtre >> Afficher la vue >> Autre >> Java >> Explorateur de packages 

JarPlug peut également être utilisé comme plug-in Eclipse. Cela fonctionne dans Eclipse/springsource

http://jar-plug.sourceforge.net/

3
Ziya

Vous pouvez les ouvrir avec la plupart des utilitaires de décompression ces jours-ci, puis obtenez simplement quelque chose comme DJ Java Decompiler si vous souhaitez afficher le source.

2
John T

Bndtools fournit un plugin de visualisation JAR gratuit pour Eclipse.

Ajoutez le site de mise à jour Eclipse et installez uniquement le visualiseur.

enter image description here

2
aboger

Je préfère Navigateur JAR , il possède une interface simple où vous pouvez parcourir plusieurs JAR et rechercher une classe spécifique sur plusieurs JAR simultanément.

1
audiodude

Eclipse 3.4 JDT

Ce n'est pas le moyen le plus rapide, car vous devez d'abord le faire glisser dans votre Eclipse . Mais la navigation dans les classes Java est complète, même si la décompilation est activée.

1
Dennis C

Je pense que Java Decomplier est votre meilleure option, vous pouvez télécharger à partir d’ici: http://jd.benow.ca/Preview http://jd.benow.ca/img/screenshot17.png

1
Ziad Alzarka

J'ai défini l'action par défaut dans Windows sur "Ouvrir avec WinZip". Cela facilite la gestion des fichiers JAR en tant qu'archives. Vous pouvez même ajouter/supprimer des fichiers manuellement.

1
Chris Nava

Mon exigence était de visualiser le contenu d'un fichier (comme un fichier de propriétés) à l'intérieur du fichier jar, sans extraire réellement le fichier. Si quelqu'un a atteint ce fil comme moi, essayez cette commande -

unzip -p myjar.jar myfile.txt

Cela a bien fonctionné pour moi!

1

J'utilise JarExplorer ou JarVisualizer .

1
Martin Baeumer

Vous pouvez essayer JarSpy . J'utilise une version du plugin IDEA.

0
Dan Dyer
jar -tvf file_name.jar

ci-dessus ne contiendra que les noms des fichiers

Pour afficher le contenu des fichiers, vous pouvez extraire les fichiers d’un dossier en:

jar -xvf file_name.jar

cela décompressera le fichier jar et mettra le contenu dans le même répertoire que celui où vous l'exécutez.

Ou, dans Windows, renommez le fichier .jar en .Zip, puis décompressez-le pour extraire et afficher le contenu du fichier jar. Comme jar est en interne un fichier Zip.

0
Anil Kapoor
0
Nolesh

Vous pouvez essayer JarNavigator pour afficher et rechercher le contenu d'un fichier jar.

0
Kumaravel

Votre IDE devrait également supporter cela. Mon IDE (SlickeEdit) l’appelle une "bibliothèque de balises". Ajoutez simplement une bibliothèque de balises pour le fichier jar et vous devriez pouvoir parcourir les classes et les méthodes de manière hiérarchique. 

0
TREE

Java -xf some-j.jar va décompresser un fichier JAR.

0
MKatleast3

Sur Mac, il y a Jarzilla

0
depsypher