クラスファイルを比較するスクリプト
- 引数で指定したディレクトリx2内のクラスファイルを再帰的に探索し、
- javapで解析。
- 解析結果をdiffで比較する。
というものです。
#!/bin/bash javap_r() { mkdir $1 for file in `find $2 -name "*.class"`; do javap_file=`echo $file | sed -e "s/${2//\//\\\/}/${1//\//\\\/}\//"` mkdir -p ${javap_file%/*} class=`echo ${file//\//.} | sed -e "s/${2//\//\.}//"` javap -classpath $2 -c ${class%.*} > $javap_file echo "javap $file to $javap_file" done } rm -rf "./a" rm -rf "./b" javap_r "./a" $1 javap_r "./b" $2 diff -r ./a ./b
使い方は以下。
$ ./class_diff.sh <クラスファイル置き場1> <クラスファイル置き場2>
実行時にはjavapがPATHに通っている必要があるので、その点のみご注意。