Finden Sie eine Klasse irgendwo in Dutzenden von JAR-Dateien?
Wie findet man einen bestimmten class-Namen innen viele jar-Dateien?
(Für die Suche nach dem eigentlichen Klassennamen, nicht die Klassen, die darauf verweisen.)
InformationsquelleAutor der Frage Kapsh | 2009-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eclipse kann es tun, erstellen Sie einfach eine (temporäre) Projekt und stellen Ihre Bibliotheken auf die Projekte classpath. Dann können Sie ganz einfach die Klassen.
Weiteres tool, dass mir in den Sinn kommt, ist Java Decompiler. Es kann öffnen viele Gläser auf einmal und hilft, Klassen sowie.
InformationsquelleAutor der Antwort Andreas_D
Unix
Verwenden Sie die
jar
(oderunzip -v
),grep
undfind
Befehle.Beispielsweise der folgenden Liste alle class Dateien mit einem bestimmten Namen:
Wenn Sie wissen, die gesamte Liste der Java-Archive, die Sie suchen möchten, können Sie Sie alle in das gleiche Verzeichnis mit (symbolischen) links.
Oder verwenden Sie
find
(Fall empfindlich) zu finden, die JAR-Datei enthält eine bestimmte Klasse name:Zum Beispiel, um den Namen des Archivs enthält
IdentityHashingStrategy
:Wenn das GLAS könnte überall in das system und die
suchen
- Befehl zur Verfügung:Windows
Öffnen Sie eine Eingabeaufforderungwechseln Sie zu dem Verzeichnis (oder Vorgänger -) Verzeichnis mit den JAR-Dateien, dann:
Hier ist, wie es funktioniert:
for /R %G in (*.jar) do
- Schleife über alle JAR-Dateien, Verzeichnisse rekursiv Durchlaufen; speichern der Datei-name in %G.@jar -tvf "%G" |
- führen Sie das Java-Archiv Befehl, um eine Liste aller Dateinamen in dem angegebenen Archiv, und schreiben Sie die Ergebnisse auf die Standardausgabe; die@
symbol unterdrückt das drucken der Befehl Aufruf.find "ClassName" > NUL
- Suche die standard-Eingabe, geleitet von der Ausgabe von dem jar-Kommando für die angegebenen Klassennamen; dies wirdERRORLEVEL
1 iff es eine übereinstimmung gibt (sonst 0).&& echo %G
- iffERRORLEVEL
ungleich null ist, schreiben Sie das Java-Archiv-Dateinamen auf die Standardausgabe (Konsole).Web
Verwenden Suchmaschine , scans JAR-Dateien.
InformationsquelleAutor der Antwort Dave Jarvis
vor einiger Zeit habe ich ein Programm geschrieben nur für: https://github.com/javalite/jar-explorer
InformationsquelleAutor der Antwort ipolevoy
gibt man den Namen der jar -
gibt Ihnen das Paket der Klasse
InformationsquelleAutor der Antwort user311174
InformationsquelleAutor der Antwort Pascal Lambert
Wusste ich nicht von einem Werkzeug, es zu tun, wenn ich stieß auf dieses problem, also schrieb ich Folgendes:
InformationsquelleAutor der Antwort ILMTitan
Suchen Gläser, die entsprechen einer bestimmten Zeichenfolge:
find . -name \*.jar -exec grep -l YOUR_CLASSNAME {} \;
InformationsquelleAutor der Antwort George Armhold
Gibt es auch zwei unterschiedliche Dienstprogramme aufgerufen, sowohl "JarScan", die genau das tun, was Sie fordern:
JarScan (inetfeedback.com) und JarScan (java.net)
InformationsquelleAutor der Antwort salzo
user1207523 das Skript funktioniert gut für mich. Hier ist eine Variante, die sucht nach jar-Dateien recusively Verwendung finden anstelle von einfachem ausbau;
InformationsquelleAutor der Antwort Kurtcebe Eroglu
Habe ich immer diese verwendet auf Windows und arbeitete außerordentlich gut.
findstr.exe kommt standard mit Windows und den params:
durch ' /' getrennt)
Hoffe, das jemand hilft.
InformationsquelleAutor der Antwort Ramesh Rooplahl
Einen
bash script
Lösung mitunzip (zipinfo)
. Getestet aufUbuntu 12
.InformationsquelleAutor der Antwort Filippo Lauria
Fand ich diese neue Art
So, in diesem Listen Sie die jar-und die Klasse, wenn Sie gefunden, wenn Sie möchten, kann Ihnen ls -1 *.Glas-oder Eingang zu xargs mit dem Befehl "suchen" HTH Jemand.
InformationsquelleAutor der Antwort Cleonjoys
Überprüfen JBoss Tattletale; obwohl ich noch nie benutzt habe es persönlich scheint dies das Werkzeug, das Sie brauchen.
InformationsquelleAutor der Antwort Wilfred Springer
Verwenden Sie einfach FindClassInJars util, es ist ein einfaches swing Programm, aber nützlich. Sie können überprüfen, source-code oder laden Sie die jar-Datei auf http://code.google.com/p/find-class-in-jars/
InformationsquelleAutor der Antwort Liubing
Nicht sicher, warum Skripte hier noch nie wirklich für mich gearbeitet. Das funktioniert:
InformationsquelleAutor der Antwort Mikael Lindlöf
Suche alle jar-Dateien in einem gegebenen Verzeichnis eine bestimmte Klasse, die Sie dies tun können:
oder, noch einfacher,
Ausgabe sieht wie folgt aus:
Es ist sehr schnell, da die option-F bedeutet, dass die Suche für den Festen string, so macht es keinen laden, der die regex-engine für jede grep-Aufruf. Wenn Sie brauchen, um, können Sie immer weglassen der option-F und verwenden regexes.
InformationsquelleAutor der Antwort Jeff
Skript zu finden jar-Datei: find_jar.sh
Usage: ./find_jar.sh < top-level-Verzeichnis mit der jar-Dateien > < Klassennamen zu finden>
Dies ist ähnlich wie die meisten hier gegebenen Antworten. Aber es gibt nur den Dateinamen, wenn grep etwas findet. Wenn Sie möchten, zu unterdrücken grep-Ausgabe können Sie umleiten, die nach /dev/null, aber ich bevorzuge zu sehen, die Ausgabe von grep als gut, so dass ich verwenden können, teilweise Klassennamen und herauszufinden, die richtige aus einer Liste von Ausgabe gezeigt.
Den Namen der Klasse können sowohl einfache Klasse Namen Wie "String" oder den vollständig qualifizierten Namen wie "java".lang.String"
InformationsquelleAutor der Antwort Joydip Datta
Hinzufügen noch ein weiteres tool... dies ist ein sehr einfaches und nützliches tool für windows. Eine einfache exe-Datei, die Sie klicken Sie auf, ihm ein Verzeichnis zu suchen, in der der name einer Klasse und es finden die jar-Datei enthält die Klasse. Ja, es ist rekursiv.
http://sourceforge.net/projects/jarfinder/
InformationsquelleAutor der Antwort Ben
Finden Sie eine Klasse in ein Verzeichnis voll von Gläsern mit ein bisschen shell:
Sucht Klasse "FooBar":
InformationsquelleAutor der Antwort Steve B.
Eine Sache hinzufügen, um alle der oben genannten: wenn Sie nicht über die ausführbare jar-verfügbar (es kommt mit dem JDK, aber nicht mit der JRE), die Sie verwenden können, entpacken (WinZip oder, oder was auch immer) das gleiche erreichen.
InformationsquelleAutor der Antwort Alex
schamlose Eigenwerbung, aber man kann versuchen, ein Dienstprogramm, das ich schrieb : http://sourceforge.net/projects/zfind
Es unterstützt die meisten gängigen Archiv/komprimierte Dateien (jar, zip, tar, tar.gz usw) und im Gegensatz zu vielen anderen jar/zip Finder, unterstützt verschachtelte zip-Dateien (zip-in zip -, jar-in-jar, etc) bis in unbegrenzte Tiefe.
InformationsquelleAutor der Antwort Dipankar Datta
Etwas spät zur party, aber dennoch...
Habe ich mit JarBrowser zu finden, in dem jar einer bestimmten Klasse vorhanden ist. Es hat eine einfach zu bedienende GUI, das Ihnen erlaubt, durchsuchen Sie den Inhalt der Gläser in dem ausgewählten Pfad.
InformationsquelleAutor der Antwort maccaroo
Folgenden Skript wird Ihnen helfen, aus
InformationsquelleAutor der Antwort Kartik Jajal
Dieser arbeitet auch in MinGW ( windows-bash-Umgebung ) ~ gitbash
Setzen Sie diese Funktion in Ihr .bashrc Datei im HOME-Verzeichnis:
InformationsquelleAutor der Antwort kisp
Grepj ist ein Befehlszeilen-Dienstprogramm, um die Suche für die Klassen innerhalb der jar-Dateien. Ich bin der Autor des Dienstprogramms.
Können Sie das Dienstprogramm ausführen, wie
grepj package.Class my1.jar my2.war my3.ear
Mehrere jar -, ear -, war-Dateien können zur Verfügung gestellt werden. Für die erweiterte Nutzung Verwendung finden, um eine Liste von jars gesucht werden.
InformationsquelleAutor der Antwort rrevo
Prüfen Sie dieses Plugin für eclipse, die den job tun können, die Sie suchen.
https://marketplace.eclipse.org/content/jarchiveexplorer
InformationsquelleAutor der Antwort kutty
Unter einer Linux-Umgebung können Sie das folgende tun :
Wo Namen ist der name der class-Datei, die Sie suchen, innerhalb der Gläser verteilt, die Hierarchie der Verzeichnisse, verwurzelt in der base_dir.
InformationsquelleAutor der Antwort Victor
Können Sie
locate
undgrep
:Stellen Sie sicher, dass
updatedb
vor der Verwendunglocate
.InformationsquelleAutor der Antwort mulugu mahesh
Verwenden.. finden Sie jede Datei in den classpath.. garantiert..
InformationsquelleAutor der Antwort Apurva Singh
In eclipse können Sie die alten aber noch brauchbaren plugin jarsearch
InformationsquelleAutor der Antwort keiki