Java: Как мне узнать, какой JAR-файл использовать, учитывая имя класса? - PullRequest
19 голосов
/ 08 ноября 2008

Для данного класса, например, org.eclipse.ui.views.navigator.ResourceNavigator , как узнать, какой файл JAR использовать? Я знаю, что это в org.eclipse.ui.ide, но как мне это узнать?

Редактировать : Спасибо всем, кто ответил. Как и многие вещи, кажется, есть несколько способов снять шкуру с этой кошки. Я хотел бы, чтобы Javadoc содержал эту информацию. Пока вот разные методы:

  1. Без Интернета, Eclipse или NetBeans:

    for f in `find . -name '*.jar'`;  do echo $f && jar tvf $f | grep -i $1; done
    
  2. Если вы хотите узнать локально с помощью Eclipse:

  3. Если вы хотите узнать из Интернета или у вас еще нет банки:

Ответы [ 17 ]

18 голосов
/ 08 ноября 2008

Если в вашем пути к классу / пути проекта есть баночка, нажмите CTRL-SHIFT-T и введите имя ... баночка будет отображаться внизу.

Если у вас нет класса в вашем пути сборки а) собрать фиктивный проект, содержащий все банки б) Я думаю, что есть плагин для поиска jar-файлов от IBM Alphaworks (но он может быть устаревшим)

17 голосов
/ 08 ноября 2008

У вас также есть этот плагин Eclipse: jarclassfinder

Пользователь вводит имя класса, который не найден (или имя класса, к которому должен получить доступ проект Java). Плагин будет искать в выбранном каталоге (и подкаталогах) JAR-файлы, содержащие этот класс.

Все результаты отображаются в таблице в пользовательском представлении. Затем пользователь может просмотреть эту таблицу и выбрать файл JAR для добавления в путь сборки своего Java-проекта. Затем пользователь щелкает правой кнопкой мыши запись в таблице и в контекстном меню выбирает путь сборки, к которому ее нужно добавить.


Обновление 2013, как я упоминал в « поиске по файлам .jar, затмевает », оно больше не поддерживается, и альтернативы редки.

Как sunleo комментарии ниже :

с Eclipse, Ctfl + Shift + T остается самой простой альтернативой для поиска типа
(имя банки отображается в строке состояния).


user862268 комментарии ниже :

Для Mac это cmd + shift + T в Eclipse, чтобы найти класс и связанный с ним jar.

9 голосов
/ 20 декабря 2011

перейти на Ctrl + Shift + T в Eclipse IDE

Появляется диалоговое окно «Открыть тип», в котором вы вводите имя класса. после этого отобразятся идентификатор пакета и место назначения jar.

8 голосов
/ 08 ноября 2008

Чтобы ответить на вопрос, нет никакого реального способа узнать, какую банку использовать. Разные версии будут иметь разное поведение.

Когда дело доходит до поиска банки, содержащей данный класс, я использую:

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

Это выделит любую банку, содержащую имя класса, переданное в качестве параметра в любой подпапке.

Еще один хороший способ найти класс - использовать поиск репозиториев maven .

5 голосов
/ 04 февраля 2013

Для меня это прекрасно работает:

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

Привет

3 голосов
/ 08 ноября 2008

Используйте это: Плагин NetBeans

Или jarFinder Сервис

3 голосов
/ 10 ноября 2011
**shell> find . -name "*.jar" | xargs -i -t \jar tvf {} | grep [TheClassNameYouAreLookingFor]**

Например, если вы ищете класс LogFactory.class в списке jar-файлов apache commons, подойдет следующая команда

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

Приведенный выше результат указывает на совпадение: commons-logging-1.1.jar

2 голосов
/ 08 ноября 2008

Использовать локатор класса / JAR:

http://classlocator.sourceforge.net/

[EDIT] Это не очевидно, даже из документации ClassLocator (!), Но, похоже, это плагин Eclipse.

2 голосов
/ 09 ноября 2008

Я использую FindJar.com . В нем перечислены все известные пакеты, которые содержат любой данный класс! Это невероятно полезно.

1 голос
/ 09 ноября 2008

В Intellij IDEA вы просто нажимаете Ctrl + клик по имени класса, и вы будете перемещены в псевдо исходный код этого класса, а заголовок окна будет выглядеть как c: \ path \ to \ lib.jar! \ Com \ что-то \ ClassName.class

...