如何在一堆罐子里面找到类名

时间:2011-09-27 10:47:57

标签: eclipse

我的系统中有很多jar文件,与我的应用程序有关。

如何在大量的jar文件中找到特定的类?

谢谢

2 个答案:

答案 0 :(得分:32)

如果这些jar文件位于Eclipse项目的构建路径中:

Ctrl-Shift-T(对于“Open Type”,“type”中的“type”)会弹出一个搜索框。你可以使用CamelType(即SB而不是StringBuilder)。

答案 1 :(得分:2)

您应该能够右键单击源文件中的类名,然后选择 Declarations 上下文菜单项的子项之一 - 即右键单击类名称和选择声明 / 项目。这将在项目中搜索该类的任何声明,并弹出标准的Eclipse搜索结果视图。我假设您在Eclipse项目中将jar作为库。

如果要在文件系统上执行此操作,请使用for循环迭代JAR文件并使用jar tf FILENAME获取类文件列表并通过grepfindstr(取决于您的平台)。如果您使用的是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机器后编辑它。

相关问题