Was wäre der einfachste Weg, Klassen, Methoden, Eigenschaften usw. in einer JAR-Datei anzuzeigen? Lutz Roeder .NET Reflector - für Java
Bei Verwendung des JDK listet jar -tf
die Dateien im jar auf. javap
gibt Ihnen mehr Details aus einer bestimmten Klassendatei.
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?
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/
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.
Für alle Inhalte wie das Anzeigen der Inhalte können Sie Folgendes verwenden:
jar tvf jarfile.jar
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 ...
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
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.
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.
Wenn Sie sehen möchten, was drin ist, benennen Sie es einfach als erste Option um.
F2 & Rename to jarfile.Zip
// Verwenden Sie einen beliebigen Entpacker ...
jar tvf jarfile.jar
jar tf jarfile.jar
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
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.
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.
In Eclipse 3.4 tun
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]"}
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
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.
Bndtools bietet ein kostenloses JAR-Viewer-Plugin für Eclipse.
Fügen Sie die Eclipse-Update-Site hinzu und installieren Sie nur den Viewer.
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.
Eclipse 3.4 JDT
Dies ist nicht der schnellste Weg, da Sie ihn zuerst in Ihre Eclipse ziehen müssen.
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
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.
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!
Ich benutze JarExplorer oder JarVisualizer .
Sie könnten versuchen, JarSpy . Es gibt eine IDEA Plugin-Version, die ich verwende.
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.
Sie können auch Luyten - Ein Open Source Java Decompiler Gui verwenden.
Mit JarNavigator können Sie den Inhalt einer JAR-Datei anzeigen und durchsuchen.
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.
Java -xf some-j.jar
entpackt eine JAR-Datei.
Auf dem Mac gibt es Jarzilla