是否有命令行工具告诉我特定类所在的JAR

时间:2012-02-02 00:50:11

标签: java

是否有命令行工具可以破解打开JAR文件并在其中找到特定的.class文件?有些东西可以让我走一个目录树来搜索哪个Jar有一个特定的类... ...

find . -name *jar -exec jaregrep -l "org.bob.PriceListViewUpdate" {} \;
REST/prices.jar
v2/REST/prices.jar

这样的东西必须存在。我从哪里得到它?

4 个答案:

答案 0 :(得分:6)

如果你知道jar是什么目录,你可以在linux中使用grep。从可疑jar文件上方的目录中运行此命令。它会告诉你哪个jar文件(或文件)有它。当我在JBoss使用的罐子里找东西的时候,我一直这样做。

grep -rail --include=*.jar org.bob.PriceListViewUpdate

答案 1 :(得分:1)

JWhich提供命令行工具来查找包含您要搜索的资源的jar文件。

答案 2 :(得分:1)

我用这个:

#!/bin/sh

find $1 -name *jar | while read JARFILE
do
    COUNT=$(unzip -qq -l "$JARFILE" "$2" | wc -l)
    if [ $COUNT -gt 0 ] ; then
            echo "$JARFILE: $COUNT matches"
    fi
done

即:

./findclass.sh  workspace-indigo/ org/objectweb/*

您可以使用globs作为包名称,但您必须使用斜杠而不是fullstops指定包名称作为反向提取。

答案 3 :(得分:0)

我想将TattleTale添加到此列表中。这是一个生成罐子列表的详细HTML报告的工具。

通常用于调试版本冲突。

http://www.jboss.org/tattletale