複数の jar ファイルに含まれるクラス名を表示するシェルスクリプト

# かなり久しぶりの更新ですが・・・。

ちょっと仕事関連で複数の jar ファイルに含まれるクラス名のリストを表示するシェ ルを作成しましたので、備忘録としてメモしておきます。

以下のロジックではカレ ントディレクトリから 2階層下までに存在する全ての jar の内容をリストします。Cygwin で動作確認しましたが他の Unix 環境でも動作するはずです。

#!/bin/csh

set FILE_LIST=`ls *.jar */*.jar */*/*.jar`

foreach file ( $FILE_LIST )
echo "jar tvf $file"
jar tvf $file
end

exit 0


ちなみに以下のような手順で上記のスクリプトの結果をリダイレクトしたファイル(以下の例では結果.txt)からパッケージ名を含んだクラス名を出力することでコンフリクトも確認できます。(多分)

cat 結果.txt | awk '{print $8}' | sort > 重複有り.txt
cat 結果.txt | awk '{print $8}' | sort | uniq > 重複なし.txt
diff 重複有り.txt 重複なし.txt

ちょっと新しい仕事が忙し過ぎて、次回の更新は何時になることやら・・・。(>_<;