主要是使用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包
该脚本演示了如何在Linux环境下利用IDEA的java-decompiler插件,将JAR文件批量转换为源代码。首先,确保环境变量中的Java指向IDEA内置的JDK,然后遍历指定目录下的所有JAR文件,使用ConsoleDecompiler进行反编译,并将结果保存到特定目录。转换完成后,会删除原始JAR文件,并创建源代码目录结构。
3251

被折叠的 条评论
为什么被折叠?



