查找目录下包含某个类的jar文件

支持cygwin(两种路径格式都支持),支持相对路径

#!/bin/bash
#从目录中的jar文件中查找指定的类
path=$1
name=$2
if [ "" = "$path" ];then
	echo "path not specified"
	exit
fi
if [ "" = "$name" ];then
	echo "name not specified"
	exit 1
fi
#cygwin处理
if [ ${path:1:2} = ':' ];then
	drive=`echo ${path:0:1}|tr "[:upper:]" "[:lower:]"`
	path=${path:3}
	path='/cygdrive/'$drive'/'${path//\//}
elif [ ${path:0:1} != '/' ];then
	path=$(pwd)"/$path"
fi
list=(`find $path -name *.jar -type f`)
c=${#list[*]}
cLen=${#c}
for row in ${list[*]}
do
	c=`expr $c - 1`
	printf "%"-$cLen"sr" $c
	rowWin=${row//cygdrive/c/C:}
	num=`jar -tf $rowWin|grep $name|wc -l`
	if [ $num -gt 0 ];then
		echo -e "r"$row
	fi
done

例如:
./findJarClass.sh "C:Workjavaapache-flume-1.5.2-binlib" PollableSource

发表评论

电子邮件地址不会被公开。

*