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

我可以使用什么程序来反编译类文件? 我真的会得到Java代码,还是只是JVM汇编代码?

在这个网站上的Java性能问题上,我经常看到有人反编译Java类文件,以了解编译器如何优化特定的东西。


2016年2月更新:

www.javadecompilers.com将JAD列为:

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

所以你的里程可能会随着最近的jdk(7,8)而变化。

同一网站列出其他工具。

正如萨尔瓦多瓦伦西亚在评论(2017年9月)中指出的,javadecompiler提供了一个SaaS,您可以将.class文件上传到云中,并且它会返回反编译的代码。


原始答案:2008年10月

  • 定义了J2SE 5.0(Java SE 5)的主要特性的JSR 176的最终版已于2004年9月30日发布。
  • 由Pavel Kouznetsov先生着名的Java反编译器JAD支持的最新Java版本是JDK 1.3
  • 大多数可从互联网上下载的Java反编译器,如“DJ Java反编译器”或“Cavaj Java反编译器”,均由JAD支持:它们无法显示Java 5源。
  • Java反编译器(另一个快速Java反编译器)具有:

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

    它适用于JDK 1.1.8到JDK 1.7.0以及其他版本(Jikes,JRockit等)的编译器。

    它具有实际上功能完整的在线实时演示版本! 您只需在页面上放置一个jar文件,然后查看反编译的源代码,而无需安装任何内容。


    有几个反编译器在那里...快速搜索产量:

  • Procyon:开源(Apache 2)并积极开发
  • Krakatau:开源(GPLv3)并积极开发
  • CFR:开源(MIT)并积极开发
  • JAD
  • DJ Java Decompiler
  • 摩卡
  • 还有很多。

    这些产生Java代码。 Java带有一些可以让你看到JVM字节码(javap)的东西。


    要查看Java源代码,请查看一些反编译器。 去寻找jad

    如果你想看到字节码,只需使用JDK附带的javap

    链接地址: http://www.djcxy.com/p/15187.html

    上一篇: How do I "decompile" Java class files?

    下一篇: Create instance of generic type in Java?