Java 有没有命令行工具告诉我某个特定类在哪个JAR中

Java 有没有命令行工具告诉我某个特定类在哪个JAR中,java,Java,有没有命令行工具可以打开JAR文件并在其中找到一个特定的.class文件?它可以让我遍历目录树,搜索哪些Jar有一个特定的类,比如 find . -name *jar -exec jaregrep -l "org.bob.PriceListViewUpdate" {} \; REST/prices.jar v2/REST/prices.jar 这样的事情一定存在。我在哪里可以得到它?如果你知道jar是什么目录,你可以在linux中使用grep。从可疑jar文件上方的目录运行此命令。它将告诉您哪

有没有命令行工具可以打开JAR文件并在其中找到一个特定的.class文件?它可以让我遍历目录树,搜索哪些Jar有一个特定的类,比如

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

这样的事情一定存在。我在哪里可以得到它?

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

grep -rail --include=*.jar org.bob.PriceListViewUpdate
提供命令行工具以查找包含您正在搜索的资源的jar文件。

我使用此工具:

#!/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
即:


您可以使用globs作为包名,但必须使用斜杠而不是句号来指定包名作为回退。

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

通常用于调试版本冲突


这并不能直接回答您的问题。很抱歉直接说,我不知道怎么做。但是,您可以看看ApacheMaven。正因为这个原因,他们的回购结构可能会吸引你。干杯@CodyS感谢您的想法,但问题不是依赖性问题,而是遗留代码库中的“这个类在297个JAR中的某个地方,但是哪一个”。看看Jarscan,看看它声称自己能做什么Jarscan有希望,但@Dev的答案解决了眼前的问题。
./findclass.sh  workspace-indigo/ org/objectweb/*