shell脚本:将java项目中的java文件编译成class文件

#! /bin/bash
此处应该是项目文件夹所在目录
cur_dir=$(pwd)
echo KaTeX parse error: Expected '}', got '#' at position 37: …ile(){ #̲ 记录项目的根目录所在路径 …cur_dir/pronameprosrc=pro_name pro_src=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 linecpvar=line cpvar={cpvar}prolib"/"{pro_lib}"/"{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
1
2
2

发布了6 篇原创文章 · 获赞 0 · 访问量 1303
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览