Для класса org.eclipse.ui.views.navigator.ResourceNavigator, например, как мне узнать, какой файл jar использовать? Я знаю, что это на org.eclipse.ui.ide, но как мне это узнать?
Редактировать: Спасибо всем, кто ответил. Как и многие другие вещи, есть несколько способов снять шкуру с этой кошки. Я бы хотел, чтобы javadoc содержал эту информацию. Пока что это разные методы:
Без Интернета, Eclipse или NetBeans:
for f in `find . -name '*.jar'`; do echo $f && jar tvf $f | grep -i $1; done
Если вы хотите узнать это локально с помощью Eclipse:
Если вы хотите узнать из Интернета или у вас еще нет баночки:
Приятно, что вы составили резюме ответов. @ Уберсолдат, почему это так уродливо?
Я ненавижу эти мерзкие обратные кавычки. Я испанец, и мы не используем их ни для чего, кроме случаев, когда мы делаем что-то не так. Кроме того, их очень трудно читать. Вот почему я предпочитаю $ (что-то)




Обычно я делаю jar -vtf foo.jar, чтобы получить список всех файлов классов.
Не самый практичный способ, но удобный. Конечно, вы можете комбинировать результат с помощью grep.
Это поможет вам перейти от JAR -> class, но не наоборот, как он и просил ...
Извиняюсь? Мой метод показывает, находится ли класс в банке, что в значительной степени является тем, о чем спрашивают, если вы потратите время на изучение всех банок вашего проекта. Использование for, как показывает k3andme, конечно же, помогает.
Если у вас есть 1 файл класса, который нужно найти в 1000 JAR, у вас проблема ... (И это не редкость, на моем рабочем месте я работаю с тысячами JAR)
Используйте локатор классов / JAR:
http://classlocator.sourceforge.net/
[РЕДАКТИРОВАТЬ] Это не очевидно даже из документации ClassLocator (!), Но похоже, что это плагин Eclipse.
Если у вас есть банка в пути к классу / пути проекта, нажмите CTRL-SHIFT-T и введите имя ... банка будет отображаться внизу.
Если у вас нет класса в пути сборки а) собрать фиктивный проект, содержащий все банки б) Я думаю, что есть плагин для поиска jar-файлов от IBM Alphaworks (но он может быть устаревшим)
Ctrl + Shift + T? В какой программе? Какая система?
@PhiLho в затмении. Это то, чем был отмечен исходный вопрос.
@KonstantinNaryshkin Doh! за его отсутствие, -1 в исходном сообщении, поскольку он полагается только на теги, отсутствует, чтобы указать это в заголовке или в самом сообщении. Учитывая, что большинство ответов здесь находятся за пределами Eclipse, я не единственный, кто это пропустил. (Или мы думали, что это нужно только для того, чтобы найти классы Eclipse?) Общие ответы в любом случае полезны. Примечания: спасибо за ответ на мой вопрос (лучше поздно, чем никогда); и дать ответ с помощью сочетания клавиш немного хрупко, поскольку их можно изменить (я делаю, но не этот). Здесь это ярлык для функциональности открытого типа.
Используйте это: плагин netbeans
Или услуга jarFinder
У вас также есть этот плагин eclipse: jarclassfinder
Пользователь вводит имя класса, который не найден (или имя класса, к которому проект Java должен получить доступ). Плагин будет искать в выбранном каталоге (и подкаталогах) файлы JAR, содержащие этот класс.
Все результаты отображаются в таблице в настраиваемом представлении. Затем пользователь может просмотреть эту таблицу и выбрать файл JAR для добавления в путь сборки своего проекта Java. Затем пользователь щелкает правой кнопкой мыши запись в таблице и в контекстном меню выбирает путь сборки, в который ее нужно добавить.
Обновление 2013, как я упоминал в «поиск в файлах .jar eclipse», больше не поддерживается, и альтернативы немногочисленны.
с Eclipse, Ctfl + Shift + T остается самой простой альтернативой искать тип
(с именем банки, отображаемым в строке состояния).
user862268 комментарии ниже:
For mac, it is cmd+shift+T in Eclipse to find the class and associated jar.
@Kevin: правда, похоже, я больше не могу его найти.
Лучше проверьте ответ, указанный ниже, как «нажмите Ctrl + Shift + T» в Eclipse, чтобы найти.
@sunleo Верно. Я включил его в ответ для большей наглядности.
Для Mac это cmd + shift + T в Eclipse, чтобы найти класс и связанный jar.
@ user862268 Спасибо. Я включил ваш комментарий для большей наглядности.
Чтобы ответить на вопрос, нет реального способа узнать, какую банку использовать. Различные версии будут иметь потенциально разное поведение.
Когда нужно найти банку, содержащую данный класс, я использую:
for f in `find . -name '*.jar'`; do echo $f && jar tvf $f | grep -i $1; done
Это выделит любую банку, содержащую имя класса, переданное в качестве параметра в любой подпапке.
Еще один хороший способ найти класс - использовать поиск репозиториев maven.
Я не уверен, что действительно понимаю вопрос, но если вы хотите убедиться, что ваш класс действительно находится в банке, вы всегда можете просмотреть саму банку, и для этого вам не нужны плагины Eclipse или специализированные внешнее приложение.
Файлы JAR (Java ARchive) - это не что иное, как файлы ZIP. Все, что вам нужно сделать, это распаковать банку или даже просмотреть ее с помощью приложения для чтения ZIP-файлов. Например, в Windows XP это встроено в операционную систему. Как удобно.
Надеюсь, это помогло ...
Юваль = 8-)
Иногда не очевидно, какой файл jar содержит интересующий вас класс.
Я использую FindJar.com. В нем перечислены все известные пакеты, содержащие любой заданный класс! Это невероятно полезно.
Не удалось найти org.eclipse.ui.views.navigator.ResourceNavigator. jarfinder.com сработало.
oracle.jdbc.driver.OracleDriver jarfinder не нашел его, а findjar нашел.
В Intellij IDEA вы просто щелкните имя класса, удерживая Ctrl, и вы перейдете к псевдо-исходному коду этого класса, а заголовок окна будет иметь вид c: \ path \ to \ lib.jar! \ Com \ something \ ClassName. класс
Также проверьте http://javacio.us/.
Я не вижу jar-файла в результатах поиска.
Вы также можете попробовать Джарвана, чтобы найти файлы jar для определенного класса.
**shell> find . -name "*.jar" | xargs -i -t \jar tvf {} | grep [TheClassNameYouAreLookingFor]**
Например, если вы ищете класс LogFactory.class в списке общих jar-файлов apache, команда ниже будет работать
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.
перейти к Ctrl + Shift + T в Eclipse IDE
Появится диалоговое окно Open Type, в котором вы вводите имя класса. после этого отобразятся идентификатор пакета и место назначения jar.
Я голосую за CTRL-SHIFT-T, потому что он уже включен в Eclipse. На самом деле я сбросил jarclassfinder.jar в каталог плагинов в установке eclipse, но все еще не смог найти плагин в графическом интерфейсе Eclipse.
Для меня это отлично работает:
find * -type f -name '*.jar' -exec grep -l 'TestClass.class' '{}' \;
С уважением
если вы скажете eclipse открыть объявление (F3) или реализацию (Navigate-> Open Implementation), и вы попадете в нередактируемое окно редактирования, вы можете увидеть путь к файлу jar, щелкнув правой кнопкой мыши окно редактора и выбрав "показать в панировочных сухарях"
моя находка на основе unix:
find . -name "*.jar" -print -exec jar -tf {} \; >outputfile
отредактируйте выходной файл, чтобы найти то, что вы хотите (вместо grep)
фу! Такой уродливый способ найти. Я предпочитаю: для f в $ (find. -Name * .jar); сделать эхо $ f && jar tvf $ f | grep -i $ 1; Готово