在java开发工作中时常遇到需要将已经编译的class转换为源码的情况。jad工具是常见的反编译工具,但是jad工具已经不再维护,通常搜索到的jad镜像,jad原地址,两个网页中都能看到jad工具早已不再更新了。jad当前的主要问题是在碰到更版本class文件时会报无法反编译,而基于jad所制作的工具和插件都会出现相同的问题。
fernflower.jar是而idea自带有反编译的插件,源码地址。可以通过源码构建出jar包进行使用。
如何使用:
```
java -jar fernflower.jar [-<option>=<value>]* [<source>]+ <destination>
java -jar fernflower.jar -hes=0 -hdc=0 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\
java -jar fernflower.jar -dgs=1 c:\Temp\binary\library.jar c:\Temp\binary\Boot.class c:\Temp\source\
```
更多的配置项见:readme