it-swarm.com.de

Java: Woher weiß ich, welche JAR-Datei unter einem bestimmten Klassennamen verwendet werden soll?

Wie finde ich bei einer gegebenen Klasse ( org.Eclipse.ui.views.navigator.ResourceNavigator ) heraus, welche JAR-Datei verwendet werden soll? Ich weiß, dass es in org.Eclipse.ui.ide ist, aber wie würde ich das herausfinden?

Bearbeiten : Vielen Dank an alle, die geantwortet haben. Wie bei vielen Dingen scheint es verschiedene Möglichkeiten zu geben, diese Katze zu häuten. Ich wünschte, Javadoc enthielt diese Informationen. Bisher sind hier die verschiedenen Methoden:

  1. Ohne Internet, Eclipse oder NetBeans:

    for f in `find . -name '*.jar'`;  do echo $f && jar tvf $f | grep -i $1; done
    
  2. Wenn Sie es mit Eclipse lokal herausfinden möchten:

  3. Wenn Sie es aus dem Internet herausfinden möchten oder das Glas noch nicht haben:

19
Eugene Yokota

Sie haben auch dieses Eclipse-Plugin: jarclassfinder

Der Benutzer gibt den Namen der Klasse ein, die nicht gefunden wurde (oder den Namen der Klasse, auf die das Java-Projekt zugreifen muss). Das Plug-In durchsucht das ausgewählte Verzeichnis (und die Unterverzeichnisse) nach JAR-Dateien, die diese Klasse enthalten.

Alle Ergebnisse werden in einer Tabelle in einer benutzerdefinierten Ansicht angezeigt. Der Benutzer kann dann diese Tabelle durchsuchen und die JAR-Datei auswählen, die dem Erstellungspfad seines Java-Projekts hinzugefügt werden soll. Der Benutzer klickt dann mit der rechten Maustaste auf den Eintrag in der Tabelle und wählt im Kontextmenü den Erstellungspfad aus, zu dem er ihn hinzufügen möchte.


Update 2013 wird, wie ich in " Durchsuchen der .jar-Dateien von Eclipse " erwähne, nicht mehr gepflegt, und die Alternativen sind spärlich.

As sunleo Kommentare nten :

mit Eclipse, Ctfl+Shift+T bleibt die einfachste Alternative , um nach einem Typ zu suchen
(mit dem Glasnamen in der Statusleiste).


ser862268 Kommentare nten :

Für Mac ist es das cmd+shift+T in Eclipse, um die Klasse und das zugehörige Glas zu finden.

16
VonC

Wenn sich die JAR-Datei in Ihrem Klassenpfad/Projektpfad befindet, drücken Sie STRG-UMSCHALT-T und geben Sie den Namen ein ... Die JAR-Datei wird unten angezeigt.

Wenn Sie nicht die Klasse in Ihrem Build-Pfad haben A) Stellen Sie ein Dummy-Projekt zusammen, das alle Jars enthält B) Ich denke, es gibt ein Plugin, um Jobs von IBM Alphaworks zu finden (aber das könnte sein.) irgendwie veraltet sein)

18
pkliem

gehen Sie in Eclipse IDE auf Strg + Umschalt + T

Das Dialogfeld "Typ öffnen" wird angezeigt, in dem Sie den Klassennamen eingeben. Danach werden die Paketkennung und das Jar-Ziel angezeigt. 

9
arvindwill

Um die Frage zu beantworten, gibt es keinen richtigen Weg, um herauszufinden, welches Glas verwendet werden soll. Unterschiedliche Versionen haben möglicherweise ein anderes Verhalten.

Wenn es darum geht, ein Glas zu finden, das eine bestimmte Klasse enthält, verwende ich Folgendes:

for f in `find . -name '*.jar'`;  do echo $f && jar tvf $f | grep -i $1; done

Dadurch wird jedes Jar hervorgehoben, das den als Parameter übergebenen Klassennamen in einem Unterordner enthält.

Eine andere gute Möglichkeit, eine Klasse zu finden, ist die Verwendung von der Maven-Repos-Suche .

8
user28791

Für mich funktioniert das gut: 

find * -type f -name '*.jar' -exec grep -l 'TestClass.class' '{}' \;

Grüße

5
user2039378

Verwenden Sie folgendes: netbeans plugin

Oder jarFinder service

3
iberck
**Shell> find . -name "*.jar" | xargs -i -t \jar tvf {} | grep [TheClassNameYouAreLookingFor]**

Wenn Sie beispielsweise nach einer Klasse LogFactory.class in der Liste der Apache-Commons-Gläser suchen, funktioniert der folgende Befehl

Shell> find Apache-commons/ -name "*.jar" | xargs -i -t \jar tvf {} | grep LogFactory.class

jar tvf Apache-commons/commons-beanutils-1.7.0.jar

jar tvf Apache-commons/commons-fileupload-1.2.1.jar

jar tvf Apache-commons/commons-lang-2.3.jar

**jar tvf Apache-commons/commons-logging-1.1.jar**

**21140 Tue May 09 23:08:12 EDT 2006 org/Apache/commons/logging/LogFactory.class**

jar tvf Apache-commons/commons-net-1.3.0.jar

Das obige Ergebnis zeigt an, dass die Übereinstimmung commons-logging-1.1.jar ist

3
user1039322

Ich benutze FindJar.com . Es listet alle bekannten Pakete auf, die eine bestimmte Klasse enthalten! Es ist unglaublich hilfreich.

2
Kieveli

Verwenden Sie einen Klassen-/JAR-Locator:

http://classlocator.sourceforge.net/

[EDIT] Es ist nicht offensichtlich, auch nicht in den Dokumenten von ClassLocator (!), Aber es scheint ein Eclipse-Plugin zu sein.

2
Yuval Adam

In Intellij IDEA klicken Sie einfach auf den Klassennamen und Sie werden in den Pseudo-Quellcode dieser Klasse verschoben. Der Fenstertitel wird wie c:\Pfad\in\lib.jar!\Gesetzt. com\etwas\ClassName.class

1
Pavel Feldman

Normalerweise mache ich jar -vtf foo.jar, um eine Liste aller Klassendateien zu erhalten.
Nicht der praktischste Weg, aber praktisch. Sie können das Ergebnis natürlich mit grep kombinieren.

1
PhiLho

Ich bin nicht sicher, ob ich die Frage wirklich verstehe, aber wenn Sie sich vergewissern möchten, dass Ihre Klasse wirklich im Glas ist, können Sie immer durch das Glas selbst schauen, und dafür benötigen Sie keine Eclipse-Plugins oder Spezialisierungen externe Anwendung.

JAR-Dateien (Java ARchive) sind nichts anderes als Zip files. Alles, was Sie tun müssen, ist, das Glas zu entpacken oder es sogar mit einer Zip-Lese-Anwendung anzuzeigen. Unter Windows XP ist dies beispielsweise in das Betriebssystem integriert. Wie praktisch.

Hoffe das hat geholfen ...

Yuval = 8-)

0
Yuval
0
Ralkie

Ich stimme für CTRL-SHIFT-T, weil es bereits in Eclipse enthalten ist. Ich habe jarclassfinder.jar im Plugin-Verzeichnis der Eclipse-Installation abgelegt, konnte das Plugin jedoch nicht in der Eclipse-GUI finden

0
amphibient

Überprüfen Sie auch http://javacio.us/

0
Adi

Sie können auch versuchen, Jarvana , um die JAR-Dateien für eine bestimmte Klasse zu finden.

0
winwin

wenn Sie Eclipse anweisen, eine Deklaration (F3) oder Implementierung (Navigate-> Open Implementation) zu öffnen und Sie in ein nicht bearbeitbares Bearbeitungsfenster eingeblendet werden, können Sie den Pfad zur JAR-Datei anzeigen, indem Sie mit der rechten Maustaste auf das Editorfenster klicken und auswählen 'in Brotkrumen anzeigen'

mein find unix basiert:

find . -name "*.jar" -print -exec jar -tf {} \; >outputfile

ausgabedatei bearbeiten, um zu finden, was Sie möchten (anstelle von grep)

0