Java: Как узнать, какой файл jar использовать, используя имя класса?

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

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

Ответ 1

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

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

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


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

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

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


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

Для mac это cmd + Shift + T в Eclipse, чтобы найти класс и ассоциированную банку.

Ответ 2

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

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

Ответ 3

перейти для Ctrl + Shift + T.

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

Ответ 4

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

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

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

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

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

Ответ 5

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

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

Привет

Ответ 7

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

Например, если вы ищете класс LogFactory.class в списке баннеров 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

Ответ 8

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

http://classlocator.sourceforge.net/

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

Ответ 9

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

Ответ 10

Обычно я делаю jar -vtf foo.jar, чтобы получить список всех файлов классов.
Не самый практичный способ, но удобный. Конечно, вы можете комбинировать результат с grep.

Ответ 11

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

Ответ 12

Я не уверен, что я действительно понимаю вопрос, но если вы хотите проверить, что ваш класс действительно находится в банке, вы всегда можете просмотреть сам банку, и для этого вам не нужен Eclipse плагинов или специализированного внешнего приложения.

Файлы JAR (Java ARchive) - это не более чем ZIP файлы. Все, что вам нужно сделать, это распаковать банку или даже просмотреть ее с помощью приложения для чтения в формате zip. Например, в Windows XP это встроено в операционную систему. Как удобно.

Надеюсь, это помогло...

Yuval = 8 -)

Ответ 15

Вы также можете попробовать Jarvana найти файлы jar для определенного класса.

Ответ 16

Я проголосую за CTRL-SHIFT-T, потому что он уже включен в Eclipse. Я фактически сбросил jarclassfinder.jar в директории плагинов внутри установки eclipse, но до сих пор не смог найти плагин в графическом интерфейсе Eclipse

Ответ 17

если вы скажете eclipse открыть объявление (F3) или реализацию (Navigate- > Open Implementation), и вы попадете в не редактируемое окно редактирования, вы увидите путь к файлу jar, щелкнув правой кнопкой мыши на редакторе окно и выбор "показать в сухарях"

my find unix основан:

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

отредактируйте выходной файл, чтобы найти то, что вы хотите (вместо grep)