是否有一個命令行工具可以打開JAR文件並在其中找到一個特定的.class文件?東西會讓我走的目錄樹中搜索該罐(S)有一個特定的類像...是否有一個命令行工具告訴我哪個JAR是一個特定的類
find . -name *jar -exec jaregrep -l "org.bob.PriceListViewUpdate" {} \;
REST/prices.jar
v2/REST/prices.jar
這樣的事情必須存在。我在哪裏得到它?
是否有一個命令行工具可以打開JAR文件並在其中找到一個特定的.class文件?東西會讓我走的目錄樹中搜索該罐(S)有一個特定的類像...是否有一個命令行工具告訴我哪個JAR是一個特定的類
find . -name *jar -exec jaregrep -l "org.bob.PriceListViewUpdate" {} \;
REST/prices.jar
v2/REST/prices.jar
這樣的事情必須存在。我在哪裏得到它?
如果你知道該jar文件的目錄,你可以在linux下使用grep
。從可疑jar文件上方的目錄運行此命令。它會告訴你哪個jar文件(或多個文件)具有它。當我在JBoss使用的jar混亂中尋找某些東西時,我總是這樣做。
grep -rail --include=*.jar org.bob.PriceListViewUpdate
嗯,這是「舊學校」,但完成了。謝謝。 – 2012-02-02 01:22:42
美麗,謝謝 – MMacphail 2017-03-29 11:02:11
JWhich提供的命令行工具來找到其中包含您正在搜索的資源的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
即:
./findclass.sh workspace-indigo/ org/objectweb/*
您可以使用包名水珠,但你必須指定用斜槓,而不是fullstops作爲backdraw包名。
我想添加TattleTale到這個列表。它是一個生成一個jar列表的詳細HTML報告的工具。
通常用於調試版本衝突。
這並不直接回答你的問題。抱歉。直接,我不知道該怎麼做。但是,你可以看看Apache Maven。出於這個原因,他們的回購結構可能會吸引你。乾杯! – 2012-02-02 00:53:39
@CodyS感謝這個想法,但問題不在於依賴關係,它是一個「這個類在297 JARS中的某處,但哪一個」在遺留代碼庫中。 – 2012-02-02 00:57:37
看看Jarscan和它聲稱它可以做什麼http://www.inetfeedback.com/jarscan/ – 2012-02-02 01:01:14