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

(查找实际的类名,而不是引用它的类。)


当前回答

ClassFinder是一个专门用来解决这个问题的程序。它允许您在目录和jar文件中递归搜索,以找到与模式匹配的类的所有实例。它是用Java编写的,而不是python。它有一个很好的图形用户界面,这使得它易于使用。它跑得很快。这个版本是在一个可运行的jar中预编译的,所以您不必从源代码构建它。

在这里下载:ClassFinder 1.0

其他回答

grep -l "classname" *.jar

告诉你罐子的名字

find . -name "*.jar" -exec jar -t -f {} \; | grep  "classname"

给你类的包

只需使用FindClassInJars util,这是一个简单的swing程序,但很有用。您可以在http://code.google.com/p/find-class-in-jars/上查看源代码或下载jar文件

下面的脚本将帮助您

for file in *.jar
do
  # do something on "$file"
  echo "$file"
  /usr/local/jdk/bin/jar -tvf "$file" | grep '$CLASSNAME'
done

在eclipse中,你可以使用旧的但仍然可用的插件jarsearch

你可以在一个充满jar的目录中找到一个类,它带有一些shell:

寻找类“FooBar”:

LIB_DIR=/some/dir/full/of/jarfiles
for jarfile in $(find $LIBDIR -name "*.jar"); do
   echo "--------$jarfile---------------"
   jar -tvf $jarfile | grep FooBar
done