shell脚本:将java项目中的java文件编译成class文件
#! /bin/bash
此处应该是项目文件夹所在目录
cur_dir=$(pwd)
echo KaTeX parse error: Expected '}', got '#' at position 37: …ile(){
#̲ 记录项目的根目录所在路径
…cur_dir/pro_dir/ids/java/src # 源代码所在根目录
pro_lib=KaTeX parse error: Expected 'EOF', got '#' at position 28: …ui/WEB-INF/lib #̲依赖jar所在目录
…pro_dir/ids/ui/WEB-INF/classes # 编译后class文件存放根目录
# src目录下的所有java文件的名称存入到 项目根目录/src/sources.list文件中 先检查是否存在,如存在先删除
rm -rf $pro_src/sources.list
# $pro_src -name ‘.java’表示在 $pro_src目录下以及子目录下寻找以.java目录结尾的 文件 并存放到source.list临时文件
find $pro_src -name '.java’ > $pro_src/sources.list
echo “java source file >>>”
cat $pro_src/sources.list
# 构建存放编译好的class文件的基目录,先删除目录
rm -rf $pro_class
mkdir $pro_class
# 将所有的jar文件绝对路径记录下来到lib.list文件中
rm -rf $pro_lib/lib.list
find $pro_lib -name '.jar’ > $pro_lib/lib.list
# 将当前目录.添加进去
cpvar=.:
# 一行一行读取lib.list文件并去每行文件路径最终的文件名 ${line##/}
while read line
do
echo {cpvar}{line##*/}":"
echo $cpvar
done < $pro_lib/lib.list
echo "print cpvar "
echo $cpvar
# 删除这个中间文件
rm -rf $pro_lib/lib.list
# 截取cpvar最后一个字符:
# 获取cpvar字符串长度
length=${#cpvar}-1
# 取 0 - length 长度的字符串
cpvar=${cpvar:0:length}
echo $cpvar
# 批量编译java文件
# 编码:-encoding utf-8
# 依赖库以冒号:隔开
# -sourcepath 参数指定源码目录跟目录, @$pro_src/sources.list 指定源码文件名
javac -d $pro_class -encoding UTF-8 -cp $cpvar -g -sourcepath $pro_src @$pro_src/sources.list
# 删除 sources.list零时文件
rm -rf $pro_src/sources.list
#删除存在的jar 若编译过的话
# rm $qddemo/qddemo.jar
cd $pro_class
jar -cvfm $pro_class/${pro_name}.jar $pro_dir/MANIFEST.MF *
chmod a+x $pro_class/${pro_name}.jar
echo "将依赖包从"${pro_lib}"复制到"${pro_class}/lib"目录下. "
# 将依赖jar包从$pro_lib 目录 复制到 $pro_target/lib目录下
cp -r $pro_lib $pro_class/lib
}
compile
exit 0