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

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


当前回答

大多数Java反编译器都是基于JAD的。这是一个很棒的工具,但不幸的是,它已经有一段时间没有更新了,并且不能很好地处理Java 1.5+类。我还没有看到任何能够正确处理1.5+类的工具。

其他回答

Procyon包含一个反编译器。它是自由/开源软件。

以下是截至2015年2月的反编译器列表:

Procyon,开源,https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler

CFR,免费,没有源代码,http://www.benf.org/other/cfr/

JD,仅供非商业用途免费,http://jd.benow.ca/

Fernflower,开源,https://github.com/fesh0r/fernflower,

JAD -此处仅为历史原因。免费,没有源代码,http://varaneckas.com/jad/ 过时,不受支持,不能正确反编译Java 5及更高版本。

您可以在线测试上述反编译器,不需要安装,并做出自己的选择。

云中的Java反编译器:http://www.javadecompilers.com/

看看卡瓦伊。

Soot是较新的Java代码的一个选项。至少它的优点是最近还在维护……

此外,Java反编译器是一个具有独立GUI和Eclipse集成的反编译器。

最后,还没有提到Jdec,尽管它没有其他选项那么完善。

在IntelliJ IDEA平台上,可以使用Java反编译器IntelliJ Plugin。它允许您在调试过程中显示所有Java源代码,即使您没有全部Java源代码。它基于著名的工具JD-GUI。