2010-08-31 2 views
12

Проект, над которым я работаю, содержит около 10 файлов jar в качестве библиотек. В верхней части одного из файлов есть оператор импорта, как:Java - Как узнать, из какого файла Jar импортируется импорт?

import jpe.nar.crat.maker.ObjectMakerFactory; 

Есть ли способ узнать, какой файл Jar это происходит от?

(я использую Netbeans, если это имеет значение.)

ответ

2

Вы можете использовать Jar Class Search для netbeans. Я не уверен, что он все еще совместим, но стоит попробовать.

1

Программируется или может быть интерактивно?

Вы можете попробовать DocJar. В элементе управления Eclipse нажмите на элемент, который покажет вам (панель редактирования покажет источник (если он прикреплен) или доступные методы, когда Package Explorer откроет дерево классу), я был бы удивлен, если Netbeans не поведет себя в аналогичном усадьба.

2

Мне нравится JFind очень много:

http://jfind.sourceforge.net/

... это работает рекурсивно, глядя в банку-х, внутри война, внутри уха, и т.д. ...

Если вы обернуть java запускает сценарий оболочки и помещает его в ваш PATH, он становится очень мощным инструментом:

Т.е. найти все EntityManager классы в каталоге jboss-6.0.0.20100429-M3:

$ jfind.sh EntityManager ./jboss-6.0.0.20100429-M3 
Search String: EntityManager 
Windows Search Location: jboss-6.0.0.20100429-M3 

....jjj.jjjjjjjjjjj 
ClassName = javax/persistence/EntityManager.class 
JarName = jboss-6.0.0.20100429-M3\client\hibernate-jpa-2.0-api.jar 
---------------- 


jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
ClassName = org/apache/xerces/impl/XMLEntityManager.class 
JarName = jboss-6.0.0.20100429-M3\client\xercesImpl.jar 
---------------- 

Маленькая оболочка обертка для использования в Cygwin:

if [ $# -ne 2 ] 
then 
    echo "Usage: `basename $0` <classname> [<fromDir>]" 
    exit 1 
fi 

echo Search String: $1 
SEARCH_LOCATION=`cygpath -w $2` 
echo Windows Search Location: $SEARCH_LOCATION 

java -jar `cygpath -w $HOME/bin/JFind.jar` "$1" "$SEARCH_LOCATION" 
echo 
4

Вы пробовали делать «Открыть объявление» на классе? В Eclipse, когда вы это сделаете, он открывает окно, в котором отображается имя фляги, и сообщает вам, что в этой банке есть «No Source Attachment». Я надеюсь, что что-то подобное произойдет для NetBeans.

Спасибо, R

0

Бывший мой коллега, Том писал JarSniffer (http://sourceforge.net/projects/jarsniffer/). Это удобный инструмент для поиска класса в наборе баннеров, почтовых индексов и деревьев каталогов.

1

В Netbeans IDE: В вашем коде ctrl-select имя класса. После того, как соответствующий редактор java появится в редакторе (если у вас нет источника для этого класса, это может показаться мало). Щелкните правой кнопкой мыши в любом месте исходного окна и выберите «Выбрать в проектах». Класс будет выделен в банке, откуда он появился.

Это работает по крайней мере еще в Netbeans 8.0.

Смежные вопросы