У меня в моей системе много файлов jar, связанных с моим приложением.
Как я могу найти конкретный класс в этом большом количестве файлов jar?
Спасибо
У меня в моей системе много файлов jar, связанных с моим приложением.
Как я могу найти конкретный класс в этом большом количестве файлов jar?
Спасибо
Если эти файлы jar находятся в пути сборки вашего проекта Eclipse:
Ctrl-Shift-T (для "Open Type", "type", как в "классе" ) вызывает окно поиска. Вы можете использовать CamelType (т.е. SB вместо StringBuilder).
Вы должны иметь право щелкнуть правой кнопкой мыши по имени класса в исходном файле и выбрать один из подпунктов пункта контекстного меню Declarations, то есть щелкнуть правой кнопкой мыши по имени класса и выбрать Declarations/Project. Это будет искать проект для любых объявлений класса и отображать стандартное представление результатов поиска Eclipse. Я предполагаю, что у вас есть банка в виде библиотеки в проекте Eclipse.
Если вы хотите сделать это в файловой системе вместо этого, используйте цикл for для итерации по файлам JAR и используйте jar tf FILENAME
, чтобы получить список файлов классов и канала, которые через grep
или findstr
( в зависимости от вашей платформы). Если вы используете bash
, что-то вроде следующего выполнит трюк:
bash-3.2$ for f in *.jar
do
result=$(jar tf $f | grep '/DBObject.class$')
[ -n "$result" ] && echo "$f contains $result"
done
mongodb-api-2.6.3.jar contains com/mongodb/DBObject.class
bash-3.2$
Вы можете придумать что-то подобное в Windows, используя цикл FOR
в командной строке, но я не помню, если findstr
правильно задает результат ERRORLEVEL
. Следующее должно работать не совсем уверенно в синтаксисе:
C:\Directory\Containing\Jars> FOR %I IN (*.jar) DO @(
FOR /F %J IN ('jar tf %I') DO ECHO "%J: %I"
) | FINDSTR /R /C:"/DBObject.class$"
mongodb-api-2.6.3.jar: com/mongodb/DBObject.class
C:\Directory\Containing\Jars>
Если я помню, я отредактирую это после того, как попаду на компьютер под Windows.