Voir le contenu de a.jar fichier
quelle serait la manière la plus facile de visualiser les classes, les méthodes, les propriétés, etc. à l'intérieur d'un fichier jar? Je suis à la recherche de quelque chose d'équivalent à la très utile Lutz Roeder. réflecteur net - pour Java
27 réponses
en utilisant le JDK, jar -tf
affichera la liste des fichiers dans le bocal. javap
vous donnera plus de détails à partir d'un fichier de classe.
je les ouvre habituellement avec 7-Zip... Il 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 se fier à (bon) JavaDoc...
maintenant, quelque part sur SO a été mentionné quelques plug-ins Eclipse, pour trouver dans quel fichier jar une classe est localisée, peut-être qu'ils peuvent faire plus (ie. ce que vous avez demandé).
[MODIFIER] la Référence à fil. Pas de quoi est demandé, mais en quelque sorte lié, donc utile: Java: Comment savoir quel fichier jar utiliser avec un nom de classe donné?
ce que j'utilise personnellement est JD-GUI. Il est gratuit 'decompiler', car il vous permet de voir le code source, les classes et les objets dans les classes, ainsi que de voir la structure des fichiers dans une arborescence à gauche. Cependant, il ne vous permet pas de modifier directement les classes.
site Web de JD-GUI: http://jd.benow.ca /
noms de méthode, champs, etc.
en ajoutant un jar à un projet dans un IDE, vous pouvez habituellement voir les méthodes et les noms de champ, mais pas l'implémentation détaillée. NetBeans peut le faire, éclipse probablement,IntelliJ probablement, etc. Vous pouvez parcourir la structure du pot directement à l'intérieur de L'IDE.
juste le contenu
pour tout ce qui concerne l'affichage du contenu, Vous pouvez utiliser:
-
jar tvf jarfile.jar
- winzip ou tout zip outil
le code source
pour accéder au code source, vous utiliserez un décompilateur tel que JAD ou l'un de ses frontends ou un autre décompilateur. Si le code est brouillé, alors ...
Utiliser WinRar . Il ouvrira la structure du dossier pour vous de manière intacte. Permet également l'édition en archive, tout en préservant les chemins.
après tout, un fichier JAR n'est qu'une archive ZIP.
extension Tom Hawtin réponse, vous pouvez pipe la liste pour filtrer la classe souhaitée ou les fichiers:
jar tf my-fat-jar-file.jar | grep filename
cela devrait fonctionner sur bash / zsh et similars, ou l'eshell d'emacs.
information supplémentaire: https://docs.oracle.com/javase/tutorial/deployment/jar/view.html
Si je comprends bien, vous voulez voir non seulement les cours mais aussi les méthodes, les propriétés et ainsi de suite. Le seul outil que je connaisse qui puisse le faire est Eclipse - si vous ajoutez un jar à project classpath, vous pourrez parcourir ses classes avec des méthodes et des propriétés en utilisant l'Explorateur de paquets habituel.
de toute façon, c'est une bonne idée pour un bon outil Java autonome
si vous voulez voir ce qu'il y a à l'intérieur, renommez simplement la première option ci-dessous..
-
F2 & Rename to jarfile.zip
//utilisez n'importe quel unzipper... -
jar tvf jarfile.jar
-
jar tf jarfile.jar
Jad est klunky et n'est plus entretenu. Je suis passé à "Java Decompiler" , qui a une interface utilisateur et un support pour les nouvelles fonctionnalités linguistiques.
tous les décompileurs que j'ai utilisés, cependant, se retrouve dans le code qu'il ne décompile pas avec succès. Pour ceux-ci, cela aide à comprendre le code Java byte démonté produit par l'outil standard JDK, javap .
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 de la catégorie fichiers 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 IDEs Java en sont capables.
Dans Eclipse 3.4 faire
- faites glisser le fichier jar en question dans un projet Java. Une copie du fichier jar apparaît.
- clic Droit sur le fichier jar, et choisissez "Build Path" -> "Ajouter à la Build Path".
- fichier Jar est déplacé vers le noeud "bibliothèques référencées", où il peut être ouvert et navigué dans le volet Explorateur de projet.
Si voir le code source est aussi un problème, ouvrez un nouveau question.
pour la navigation au niveau Jar-file (comme un fichier zip) j'utilise 7zip qui fonctionne très bien, et permet de voir et d'éditer des entrées qui est excellent pour le dépannage.
une façon de faire ceci 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 en utilisant package explorer.
Fenêtre>>Show View>>Autres>>Java>>Package Explorer
une autre façon est, vous pouvez utiliser JarPlug comme un plugin eclipse. Cela fonctionne dans eclipse / springsource
si vous êtes dans windows et en utilisant powershell et que vous recherchez un fichier dans un bocal, vous pouvez faire:
jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}
vous pouvez les ouvrir avec la plupart des utilitaires de décompression de nos jours, puis obtenir quelque chose comme DJ Java Decompiler si vous voulez voir la source.
Bndtools fournit un jar viewer plugin gratuit pour Eclipse.
ajouter le Eclipse update site et n'installer que le visualiseur.
utilisez unzip -l <jar-file-name>.jar
par exemple si vous avez un fichier jar avec le test de nom.jar puis unzip -l test.jar
affichera le contenu du fichier jar.
selon le manuel de la commande unzip avec option-L.
archive de la liste de fichiers (format court). Les noms de fichier non compressé les tailles et les dates de modification et les 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éfinir, l'option-l affiche également des colonnes pour les tailles des attributs étendus (EAs) et des listes de contrôle D'accès (ACLs) de OS/2 stockés. De plus, le commentaire de zipfile et les commentaires de fichiers individuels (s'il y a) sont affichés. Si un fichier a été archivée à 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 nom de fichier converti en minuscules et préfixé avec un caret (^)
I prefer Jar Browser , il a une interface simple où vous pouvez parcourir plusieurs pots, et la recherche d'une classe spécifique à travers plusieurs pots simultanément.
Eclipse 3.4 JDT
ce n'est pas le moyen le plus rapide parce que vous devez le glisser dans votre éclipse en premier. Mais vous aurez la classe java complète de navigation, même avec decompile activé.
j'ai paramétré l'action par défaut de windows à"ouvrir avec WinZip". Il est donc facile de gérer les pots comme des archives. Vous pouvez même ajouter/supprimer des fichiers manuellement.
je pense que Java Decomplier est votre meilleure option que vous pouvez télécharger d'ici: http://jd.benow.ca / Aperçu http://jd.benow.ca/img/screenshot17.png
votre IDE devrait également soutenir ceci. Mon IDE (SlickeEdit) l'appelle une "bibliothèque d'étiquettes."Il suffit d'ajouter une bibliothèque de balises pour le fichier jar, et vous devriez être capable de parcourir les classes et les méthodes de manière hiérarchique.
Vous pouvez essayer de JarNavigator pour afficher et rechercher le contenu d'un fichier jar.
vous pouvez aussi utiliser Luyten-An Open Source Java Decompiler Gui