web-dev-qa-db-de.com

Anzeigen des Inhalts einer JAR-Datei

Was wäre der einfachste Weg, Klassen, Methoden, Eigenschaften usw. in einer JAR-Datei anzuzeigen?  Lutz Roeder .NET Reflector  - für Java

170
Dani

Bei Verwendung des JDK listet jar -tf die Dateien im jar auf. javap gibt Ihnen mehr Details aus einer bestimmten Klassendatei.

223

Normalerweise öffne ich sie mit 7-Zip ... Damit können zumindest Pakete, Klassen und Ressourcen angezeigt werden.
Wenn ich Methoden oder Felder sehen muss, würde ich Jad verwenden, aber es ist natürlich besser, sich auf (gutes) JavaDoc zu verlassen ...

Irgendwo auf SO wurden einige Eclipse-Plug-Ins erwähnt, um herauszufinden, in welcher JAR-Datei sich eine Klasse befindet, können sie vielleicht mehr tun (dh, was Sie angefordert haben).

[EDIT] Verweis auf SO - Thread. Nicht was gefragt wird, sondern irgendwie verwandt, also nützlich: Java: Woher weiß ich, welche JAR-Datei ein Klassenname verwendet?

47
PhiLho

Was ich persönlich benutze, ist JD-GUI. Es ist ein freier 'Dekompilierer', da Sie den Quellcode, die Klassen und Objekte in den Klassen sowie die Dateistruktur in einem Baummenü auf der linken Seite sehen können. Es ist jedoch nicht möglich, die Klassen direkt zu ändern.

JD-GUI-Website: http://jd.benow.ca/

32
Azulflame

Methodennamen, Felder usw.

Durch Hinzufügen eines Jars zu einem Projekt in einer IDE können Sie normalerweise Methoden und Feldnamen sehen, nicht jedoch die detaillierte Implementierung. NetBeans können dies, wahrscheinlich Eclipse, wahrscheinlich IntelliJ usw. Sie können die JAR-Struktur direkt in der IDE durchsuchen.

Nur der Inhalt

Für alle Inhalte wie das Anzeigen der Inhalte können Sie Folgendes verwenden:

  • jar tvf jarfile.jar
  • winzip oder ein beliebiges Zip-Tool

Der Quellcode

Um auf Quellcode zuzugreifen, würden Sie einen Decompiler wie JAD oder eines seiner Frontends oder einen anderen Decompiler verwenden. Wenn der Code verschleiert wird, dann ...

15
John Doe

Wenn Sie die Tom Hawtin-Antwort erweitern, können Sie die Liste per Pipe filtern, um die gewünschten Klassen oder Dateien herauszufiltern:

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

Dies sollte auf bash/zsh und ähnlichen oder Emacs 'Eshell funktionieren.

Zusätzliche Informationen: https://docs.Oracle.com/javase/tutorial/deployment/jar/view.html

8
Jose Miguel

Verwenden Sie WinRar. Es öffnet sich die Ordnerstruktur auf intakte Weise. Ermöglicht auch die Bearbeitung innerhalb des Archivs unter Beibehaltung der Pfade.

Schließlich ist eine JAR-Datei nur ein Zip-Archiv.

7
M.N

Verwenden Sie beispielsweise unzip -l <jar-file-name>.jar. Wenn Sie eine JAR-Datei mit dem Namen test.jar haben, listet unzip -l test.jar den Inhalt der JAR-Datei auf.

Entsprechend dem Handbuch von unzip mit Option - l.

archivdateien auflisten (kurzes Format). Die Namen, unkomprimierte Datei Größen und Änderungsdatum und -zeiten der angegebenen Dateien sind zusammen mit den Summen aller angegebenen Dateien gedruckt. Wenn UnZip war kompiliert mit definiertem OS2_EAS, Die Option -l listet auch Spalten für die Größen von gespeicherten erweiterten OS/2-Attributen (EAs) und OS/2-Zugriffssteuerungslisten (ACLs) auf. Zusätzlich können Sie den zip-Datei-Kommentar und einzelne Dateikommentare (falls vorhanden) sind angezeigt. Wenn eine Datei .__ war. archiviert von einem Einzelfall-Dateisystem (z. B. dem alten MS-DOS-FAT-Dateisystem) und der Option -L wurde die .__ gegeben. Dateiname wird in Kleinbuchstaben umgewandelt und mit einem Caret (^) versehen.

Sie können auch zipinfo <your jar file> verwenden. wenn Ihr Betriebssystem dies unterstützt. 

7
Amit Khandelwal

Wenn Sie sehen möchten, was drin ist, benennen Sie es einfach als erste Option um.

  1. F2 & Rename to jarfile.Zip // Verwenden Sie einen beliebigen Entpacker ...

  2. jar tvf jarfile.jar 

  3. jar tf jarfile.jar

6
Some Java Guy

Wenn ich es richtig verstehe, möchten Sie nicht nur Klassen, sondern auch Methoden, Eigenschaften usw. sehen. Das einzige Werkzeug, das ich dafür tun kann, ist Eclipse. Wenn Sie dem Klassenpfad eines Projekts eine JAR hinzufügen, können Sie seine Klassen mit Methoden und Eigenschaften mit dem üblichen Paket-Explorer durchsuchen.

Auf jeden Fall ist dies eine gute Idee für ein gutes Java-Standalone-Tool

5
Yoni Roit

Jad ist klunky und wird nicht mehr gewartet. Ich habe zu "Java Decompiler" gewechselt, der über eine glatte Benutzeroberfläche verfügt und neue Sprachfunktionen unterstützt. 

Jeder Decompiler, den ich verwendet habe, läuft jedoch in Code, den er nicht erfolgreich dekompilieren kann. Für diese ist es hilfreich, den disassemblierten Java-Bytecode zu verstehen, der vom Standard-JDK-Tool javap erzeugt wird.

4
erickson

Nun, eine JAR-Datei ist nur eine Zip-Datei. Wenn Sie sie entpacken (mit Ihrem bevorzugten Entpackungsprogramm), erhalten Sie alle Dateien darin. 

Wenn Sie in den Klassendateien nach den Methoden suchen möchten, benötigen Sie ein Werkzeug dafür. Wie PhiLho erwähnt, ist Eclipse dazu in der Lage (standardmäßig), und ich denke, dass die meisten Java-IDEs dazu in der Lage sind.

3
Jeroen Heijmans

In Eclipse 3.4 tun

  1. Ziehen Sie die betreffende JAR-Datei in ein Java-Projekt. Eine Kopie der JAR-Datei wird angezeigt.
  2. Klicken Sie mit der rechten Maustaste auf die JAR-Datei und wählen Sie "Build-Pfad" -> "Zum Build-Pfad hinzufügen". 
  3. Die Jar-Datei wird in den Knoten "Referenzierte Bibliotheken" verschoben, wo sie im Projekt-Explorer geöffnet und navigiert werden kann. 

Wenn auch der Quellcode angezeigt wird, öffnen Sie eine neue Frage.

Für die Navigation auf Jar-Dateiebene (als Zip-Datei) verwende ich 7Zip, was sehr gut funktioniert und das Anzeigen und Bearbeiten von Einträgen ermöglicht, was sich hervorragend für die Fehlersuche eignet.

Wenn Sie sich in Windows befinden und Powershell verwenden und nach einer Datei in einem Jar suchen, können Sie Folgendes tun:

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

Eine Möglichkeit, dies zu tun, ist das Öffnen der Perspektive im "Paket-Explorer". Auf diese Weise können Sie die Struktur Ihres Gefäßes anhand der Klassendetails sehen. Überprüfen Sie dazu den Bibliotheksordner in Ihrem Projekt mit dem Paket-Explorer.

Fenster >> Ansicht Anzeigen >> Andere >> Java >> Package Explorer 

Sie können JarPlug auch als Eclipse-Plugin verwenden. Dies funktioniert in Eclipse/Springsource

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

3
Ziya

Sie können sie heutzutage mit den meisten Dekomprimierungsprogrammen öffnen und erhalten dann etwas wie DJ Java Decompiler , wenn Sie die Quelle anzeigen möchten.

2
John T

Bndtools bietet ein kostenloses JAR-Viewer-Plugin für Eclipse.

Fügen Sie die Eclipse-Update-Site hinzu und installieren Sie nur den Viewer.

enter image description here

2
aboger

Ich bevorzuge JAR Browser , er verfügt über eine einfache Benutzeroberfläche, über die Sie mehrere JARs durchsuchen und gleichzeitig nach einer bestimmten Klasse in mehreren JARs suchen können.

1
audiodude

Eclipse 3.4 JDT

Dies ist nicht der schnellste Weg, da Sie ihn zuerst in Ihre Eclipse ziehen müssen.

1
Dennis C

Ich denke, Java Decomplier ist die beste Option, die Sie hier herunterladen können: http://jd.benow.ca/Vorschau http://jd.benow.ca/img/screenshot17.png

1
Ziad Alzarka

Ich habe die Standardaktion in Windows auf "Öffnen mit WinZip" gesetzt. Dies macht es einfach, JARs als Archive zu verwalten. Sie können sogar Dateien manuell hinzufügen oder entfernen.

1
Chris Nava

Meine Anforderung bestand darin, den Inhalt einer Datei (wie eine Eigenschaftendatei) in der JAR-Datei anzuzeigen, ohne die JAR-Datei zu extrahieren. Wenn jemand wie ich diesen Thread erreicht hat, probiere diesen Befehl -

unzip -p myjar.jar myfile.txt

Das hat bei mir gut funktioniert!

1

Ich benutze JarExplorer oder JarVisualizer .

1
Martin Baeumer

Sie könnten versuchen, JarSpy . Es gibt eine IDEA Plugin-Version, die ich verwende.

0
Dan Dyer
jar -tvf file_name.jar

darüber werden nur Namen der Dateien gedruckt

Um den Inhalt von Dateien anzuzeigen, können Sie die Dateien in einem Ordner extrahieren von:

jar -xvf file_name.jar

dadurch wird die JAR-Datei entpackt und der Inhalt in demselben Verzeichnis abgelegt, in dem Sie diese ausführen.

Oder benennen Sie die .jar-Datei in Windows in .Zip & um. Dann können Sie die Datei entpacken, um den Inhalt der JAR-Datei zu extrahieren und anzuzeigen. Als jar gibt es intern eine Zip-Datei.

0
Anil Kapoor
0
Nolesh

Mit JarNavigator können Sie den Inhalt einer JAR-Datei anzeigen und durchsuchen.

0
Kumaravel

Ihre IDE sollte dies auch unterstützen. Mein IDE (SlickeEdit) nennt es eine "Tag-Bibliothek". Fügen Sie einfach eine Tag-Bibliothek für die JAR-Datei hinzu, und Sie sollten in der Lage sein, Klassen und Methoden hierarchisch zu durchsuchen. 

0
TREE

Java -xf some-j.jar entpackt eine JAR-Datei.

0
MKatleast3

Auf dem Mac gibt es Jarzilla

0
depsypher