如何“反编译”Java 类文件?[已关闭]

2022-08-31 04:17:20

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

关于这个站点上的Java性能问题,我经常看到那些“反编译”Java类文件的人的回答,以了解编译器如何优化某些东西。


答案 1

2016 年 2 月更新:

www.javadecompilers.com 将 JAD 列为:

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

因此,您的里程可能会因最近的jdk(7,8)而异。

同一站点列出了其他工具。

正如Salvador Valencia评论(2017年9月)中指出的那样,javadecompiler提供了一个SaaS,您可以在其中将文件上传到云中,并返回反编译的代码。.class


原答:2008年10月

  • JSR 176 的最终版本定义了 J2SE 5.0(Java SE 5)的主要特性,已于 2004 年 9 月 30 日发布。
  • 由Pavel Kouznetsov先生编写的著名Java反编译器JAD支持的最新Java版本是JDK 1.3
  • 今天可以从Internet下载的大多数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等)。

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


答案 2

有一些反编译器在那里...快速搜索可产生:

  1. Procyon:开源(Apache 2)并积极开发
  2. 喀拉喀托:开源(GPLv3)并积极开发
  3. CFR:开源(MIT)并积极开发
  4. 贾德
  5. DJ Java Decompiler
  6. 摩卡

还有更多。

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


推荐