有时候工程里想要用到一些jar文件,但是有的jar没有相应的源码可供参考,于是就自己利用jad来反编译它的class文件。
其实反编译的工具很多,像jd-gui,它是个带图形界面的工具,导入相应的jar文件就可以立刻看到它的源代码。但很多时候,我们想直接在IDE里通过鼠标点击就可以看到源码。这个时候我们就需要把反编译好的源码attach到对应的jar.
如果只是反编译某个jar,在命令行下是很简单的,但如是很多jar文件都需要处理解压、反编译的话,就比较费事了。这个时候,批处理是不不错的选择。
假设当前文件夹下有n个jar文件,想把反编译出的java文件都放到当前文件夹的sources文件夹下,并且java文件的结构同jar里结构一样,可以用一下代码实现:
@echo off
for %%i in (*.jar) do (
rem 利用winrar的命令行形式解压jar文件到sources下
winrar x %%i sources\%%~ni\
)
rem 转到sources下
cd sources
for /r %%i in (*.class) do (
rem 转到相应的class文件所在文件夹
cd "%%~dpi"
rem jad反编译成java文件,放在同class文件形同的位置
jad -sjava "%%~nxi"
)
pause
其实反编译的工具很多,像jd-gui,它是个带图形界面的工具,导入相应的jar文件就可以立刻看到它的源代码。但很多时候,我们想直接在IDE里通过鼠标点击就可以看到源码。这个时候我们就需要把反编译好的源码attach到对应的jar.
如果只是反编译某个jar,在命令行下是很简单的,但如是很多jar文件都需要处理解压、反编译的话,就比较费事了。这个时候,批处理是不不错的选择。
假设当前文件夹下有n个jar文件,想把反编译出的java文件都放到当前文件夹的sources文件夹下,并且java文件的结构同jar里结构一样,可以用一下代码实现:
@echo off
for %%i in (*.jar) do (
rem 利用winrar的命令行形式解压jar文件到sources下
winrar x %%i sources\%%~ni\
)
rem 转到sources下
cd sources
for /r %%i in (*.class) do (
rem 转到相应的class文件所在文件夹
cd "%%~dpi"
rem jad反编译成java文件,放在同class文件形同的位置
jad -sjava "%%~nxi"
)
pause