笔者以前经常使用JD-GUI工具反编译Java class,但是该工具反编译1.7之后的字节码就开始不完美了,尤其是反编译1.8的字节码根本没法看。今天推荐Procyon-Decompiler反编译工具,我们知道,在代码支撑方面,JDK 1.7引入了字符串Switch、泛型接口改进等新功能,1.8增加了lambda表达式、方法传递、多重注解等新特性,这使得反编译工具的编写难度加大,Procyon-Decompiler支持JDK1.8类的反编译,在很多方面做得非常不错:
- 字符串的Switch
- 枚举声明方面
- 注解方面
- 匿名类、内部类
- Java8新接口规范
- Java8 Lambda表达式
- Java8 方法传递
另外它在反编译后输出多种类型的结果,如Java源码、原始字节码、字节码AST
使用示例:
反编译java.lang.String类:
1
|
java -jar decompiler.jar java.lang.String
|
反编译java.util.Collections类:
1
|
java -DAnsi=true -jar decompiler.jar java.util.Collections
|
反编译一个jar包,并将源代码输出到一个目录:
1
|
java -jar decompiler.jar -jar myJar.jar -o out
|
工具下载:
下载procyon-decompiler反编译工具procyon-decompiler-0.5.30.jar
工具官网:
https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler
官网推荐了很多可视化工具
(文/
)来源:http://www.lizi.pw/archives/59
如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。