jad 是一个java 反编译的小程序,实现不算复杂,可以方便把.class 文件转化成源码文件
但是jad 存在一个弊端就是无法编译整个jar
这里我采用了windows 的批处理命令 来解决这个问题
材料准备
- jad
- 一个测试的jar
- windows 环境
将jar用压缩工具解压到需要的一个工作目录,要求路径中不包含空格和中文等特殊情况
在需要反编译的根目录放置jad工具,并编写批处理命令
比如我需要编译a.jar
解压出来再根目录有
com
META-INFO
这两个文件夹
那么jad和批处理命令文件就都放在这层目录上,(目录中最好不要包含其他的东西)
traverse_compile.bat
@echo off
for /R %%i in (*.class) do (
echo "%%~ni"|findstr /m "[$]">nul&& (
echo %%i >> log1.txt
) || (
jad -d %%~dpi -sjava %%i
)
)
pause
这一段话会把所有的.class 文件在原处编译成.java 文件
traverse_del.bat
@echo off
for /R %%i in (*.class) do (
del %%i
)
pause
这句话是删除源码中所有的.class 文件
这样最后得到的东西 我们可以直接用了
最后还是说句 jad只是帮助分析代码的工具,我们还是要尊重代码著作权