Wie finde ich die JAR-Datei, die eine Klassendefinition enthält?
Was ist Ihr Lieblings-tool, plugin, script, finden Sie eine java-Klasse in eine Reihe von jar-Dateien?
Sehr oft ich Erben code, der sich über eine Klasse, die nicht existiert, und es ist nur, weil die jar-Datei ist nicht im classpath. Aber, in welche jar-Datei(en) ist die Klasse? Kann ich nicht die JAR - (daher habe ich die online-Suche), oder das hinzufügen einer JAR zum classpath könnte erstellen einer Kopie der Klassendefinition problem.
Ich natürlich vorziehen würde, ein eclipse-plugin, aber ich bin offen für jede software, die das arbeiten mit Windows.
Ich weiß... Windows ist nicht meine Wahl, aber das ist, was ich habe, mit zu arbeiten.
Dank!
Luis
P. S. Danke für Eure Antworten. Nach der überprüfung einige Antworten, wurde mir bewusst, dass ich hätte besser erklärt mein Szenario. Wir hatten eine Bibliothek von heruntergeladenen oder erstellten JAR-Dateien, aber manchmal ist das Klasse wäre es online irgendwo.
InformationsquelleAutor der Frage luiscolorado | 2010-08-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Dies ist eine Verbesserung gegenüber den Skript hatte ich in früheren Versionen der Antwort, wie es produziert viel sauberer Ausgabe zum Preis von einigen
awk
special/hässlich zu zitieren.)Habe ich ein Skript gebaut (
findinjars
), die genau das tut.können Sie dann aufrufen mit:
oder nur
Dot Zeichen in der voll qualifizierte Klassenname interpretiert werden, in der regexp Sinne von 'alle Zeichen', aber das ist keine große Sache, da dies eine Heuristik-Dienstprogramm (das ist, warum es groß-und Kleinschreibung auch BTW). In der Regel ich don ' T die Mühe mit den vollständigen Klassennamen und geben Sie einfach ein Teil davon.
InformationsquelleAutor der Antwort Marcus Junius Brutus
In die gleiche Richtung wie BalusC Antwort (ich kann keine post Kommentar noch link 2 urls, kein Ruf 🙁 ), können Sie eine jar-Dank dieser 2 jar-finder-Motoren:
- http://www.jarfinder.com/
- findjar
InformationsquelleAutor der Antwort Fanny H.
Ich lief in das gleiche problem unzählige Male, so schrieb ich ein kleines tool, Sie zu finden.
Einen einfachen command line:
findclass MyClass -classpath ...
Sucht Sie Verzeichnisse, jar, zip, Krieg und Ohr-Dateien für Ihre Klasse.
Ich schrieb es vor ein paar Jahren und benutze es die ganze Zeit.
Ich dachte, andere vielleicht nützlich finden, auch so, das ich hochgeladen auf github.
Es ist frei verfügbar zum download:
https://github.com/eurozulu/Findclass/tree/master/dist
Wenn Sie wollen einen Blick auf die Quelle, es ist auf der gleichen Website:
https://github.com/eurozulu/Findclass/tree/master
Wenn es Euch gefällt, lasst es mich einfach wissen, um mir zu geben, dass warme gemütliche Gefühl 🙂
InformationsquelleAutor der Antwort Rob
Ich in der Regel beschäftigen bash:
grep -lr "ClassName" .
Der trick ist, die Namen sind nicht verschlüsselt, in keiner Weise. Sie können öffnen Sie die jar-Datei im text-editor und du wirst es sehen. (Sie können auch Paketnamen, die in die Suchanfrage.)Ich vermute, es gibt einige windows-äquivalent zu.
InformationsquelleAutor der Antwort Nikita Rybak
Ein einfacher Befehl. Sie don T müssen verwenden 'während', '& & ' zu drucken, Datei-Namen, wenn 'grep' findet die Klasse.
InformationsquelleAutor der Antwort Wenbing Li
Benutze ich jarscan. Ist es eine ausführbare jar-Datei, kann Rekursives durchsuchen einer gesamten Ordner-Struktur für Gläser enthalten, die Klasse, die Sie suchen. Es sucht nach Klassen-Namen, den Paketnamen oder regex.
InformationsquelleAutor der Antwort Mike Pone
Grepj ist ein Befehlszeilen-Dienstprogramm, um die Suche für die Klassen innerhalb der jar-Dateien.
Können Sie das Dienstprogramm ausführen, wie
grepj package.Class my1.jar my2.war my3.ear
Suchbereich
Mehrere jar -, ear -, war-Dateien können zur Verfügung gestellt werden.
InformationsquelleAutor der Antwort rrevo
Ich habe ein Programm geschrieben für: https://github.com/javalite/jar-explorer Es wird auch dekompilieren vorhandene byte-code, Ihnen zu zeigen, interfaces, Methoden, super-Klassen, zeigen Sie Inhalte von anderen Ressourcen - text, Bilder, html, usw.
InformationsquelleAutor der Antwort ipolevoy
verwenden:
InformationsquelleAutor der Antwort ILMTitan
for x in $(find . -name '*.jar')
tun
unzip-l $x | grep WCCResponseImpl
getan
InformationsquelleAutor der Antwort user2981289
Die beste und einfachste Weg ist die Verwendung der JAD Decompiler. Und ja, es ist ein ECLIPSE-PLUGIN !
Download und speichern Sie das plugin in einem beliebigen Speicherort auf Ihrem Computer.
Das plugin enthält die folgenden Dateien:
Führen Sie die folgenden Schritte aus:
Wählen Sie nun eine beliebige Klasse, und drücken Sie die F3-Taste.
Den .class-Datei dekompilieren automatisch und zeigt den Inhalt !
InformationsquelleAutor der Antwort Neal
Wenn es nicht in den classpath ein, dann haben Sie wahrscheinlich nicht die JAR-Datei selbst überhaupt. Suche über Eclipse-builtin
Ctrl+Shift+T
Funktion nicht viel helfen. In der Regel können Sie Gebrauch machen von den Paket-Namen zu "erraten", wo können Sie die JAR-Datei aus dem internet. E. g. einorg.apache.commons.lang.XXX
- Klasse ist verfügbar bei http://commons.apache.org/lang.Für die nicht offensichtlichen lieben, ich selber nutze http://grepcode.com, die JAR-source code search engine.
InformationsquelleAutor der Antwort BalusC
Können Sie immer fügen Sie die Referenz-Bibliothek in deinem Projekt in Eclipse und dann im Paket-Browser, erweitern Sie die Pakete, die in der JAR-Datei, bis Sie finden die Klasse, die Sie suchen.
InformationsquelleAutor der Antwort Das
@Nikita Rybak: AstroGrep für Windows ist unser Freund: http://astrogrep.sourceforge.net/
InformationsquelleAutor der Antwort NinjaCat
Ich habe versucht, einige dieser Unix-Befehle, aber Sie errored out aus verschiedenen Gründen. Hier ist ein Perl-Skript, das ich schrieb. Es ist speziell entwickelt, um laufen auf Cygwin unter Verwendung der Cygwin-version von Perl.
InformationsquelleAutor der Antwort Lyle Z
Habe ich vor kurzem erstellt ein Werkzeug zum durchsuchen von Klassen , packages und Bibliotheken. Sie können es versuchen,http://javasearch.buggybread.com/. Klicken Sie auf den Rahmen und es wird Ihnen helfen, suchen Sie Informationen zu Abhängigkeiten ( Glas , pom).
InformationsquelleAutor der Antwort Vivek Vermani
Wollte nur erwähnen, dass Dritter frei durchsucht werden können, für bestimmte Datei-Namen in jarfinder
Obwohl es nicht direkt die Frage beantworten, aber es wird nicht Schaden 🙂
Hoffe, das hilft
InformationsquelleAutor der Antwort Mark Bramnik