如何“反编译”Java类文件?

问题:

我可以用什么程序来反编译一个类文件?我实际上会得到Java代码,还是只是JVM汇编代码?
在本网站上的Java性能问题上,我经常看到有人反对了“反编译”Java类文件,以了解编译器如何优化某些内容。

回答:

更新2016年2月
 www.javadecompilers.com将JAD列为:

最流行的Java反编译器,但主要是这个时代。用C ++编写,非常快。
过时,不受支持,无法正确反编译Java 5及更高版本

所以你的里程可能随着最近的jdk而变化(7,8)。
同一网站列出其他工具。
而由Salvador Valencia the comments(2017年9月)中提到的javadecompiler提供了一个SaaS,您可以将.class文件上传到云端,并返回您的反编译代码。
原来的答案:2008年10月

  • 定义J2SE 5.0(Java SE 5)的主要功能的JSR 176的最终版本已于2004年9月30日发布。
  • JAD支持的最新Java版本是由Pavel Kouznetsov先生撰写的着名的Java反编译器,是
  • 今天从互联网下载的大多数Java反编译器,如“DJ Java Decompiler”或“Cavaj Java Decompiler”都由JAD提供支持:它们不能显示Java 5源。

 Java Decompiler(另一个Fast Java反编译器)具有:

  • 显式支持反编译和分析Java 5+“.class”文件。
  • 一个很好的GUI:

 screenshot
它与JDK 1.1.8到JDK 1.7.0以及其他(JikesJRockit等)的编译器配合工作。
它具有在线live demo version,实际上功能齐全!您可以在页面上放置一个jar文件,并在没有安装任何内容的情况下查看反编译的源代码。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do I “decompile” Java class files?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

82 + = 91