主要是使用IDEA的插件包java-decompiler.ja进行批量的转换。
注意:由于插件使用的java环境是idea自带的jdk版本,则环境变量中的java需要配置成idea自带的jdk版本,对应的目录为 /opt/dep/idea-IU-223.8836.41/jbr
#!/bin/bash
# by liuchao
_work_path=$(pwd)/lib
#创建临时文件
$(> temp.txt)
for file in ${
_work_path}/*.jar
do
# 提取目录下的文件、目录的名称,拼接删除命令
if test -f $file
then
echo $file"--->"${
file##*/}
_file_name=${
file##*/}
java -cp "/opt/dep/idea-IU-223.8836.41/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true $file /opt/dep/srcs/
# 解压转换后的jar包
if test -f "/opt/dep/srcs/$_file_name"; then
# 创建目录
rm -rf /opt/dep/srcs/$_file_name.src
mkdir /opt/dep/srcs/$_file_name.src
# 解压
unzip -q -d /opt/dep/srcs/$_file_name.src /opt/dep/srcs/$_file_name
# 删除jar包
rm -rf /opt/dep/srcs/$_file_name
fi
echo -n $file >> temp.txt
else
echo "目录不做任何处理!"
fi
done
# java -cp "/opt/dep/idea-IU-223.8836.41/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true /opt/dep/lib/service-model-10.2.1-20429.jar /opt/dep/srcs/
转换后的结果
参考文章:IDEA—使用插件反编译jar包
文章评论