[英]How to find class name inside a bunch of jars
我的系统中有很多jar文件,与我的应用程序有关。
我怎样才能在那么多jar文件中找到特定的类?
谢谢
如果这些jar文件位于Eclipse项目的构建路径中:
Ctrl-Shift-T(对于“Open Type”,“type”中的“type”)会弹出一个搜索框。 你可以CamelType(即SB而不是StringBuilder)。
您应该能够右键单击源文件中的类名,并选择声明上下文菜单项的子项之一 - 即,右键单击类名并选择声明 / 项目 。 这将在项目中搜索该类的任何声明,并弹出标准的Eclipse搜索结果视图。 我假设您在Eclipse项目中将jar作为库。
如果你想在文件系统上执行此操作,那么使用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$
您可以在命令提示符下使用FOR
循环在Windows中编写类似的东西,但我不记得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机器后编辑它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.