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

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


当前回答

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

其他回答

你可以使用一些程序。您将得到实际的Java代码,但有时代码会被混淆,因此方法由一个字母或数字或字母和数字的随机组合命名。

DJ解码器 摩卡

这里有一些反编译器…快速搜索会得到:

Procyon:开源(Apache 2),积极开发 Krakatau:开源(GPLv3),并积极开发 CFR:开源(MIT)并积极开发 联合应用开发 DJ Java反编译器 摩卡

还有更多。

它们生成Java代码。Java自带一些功能,可以让您看到JVM字节代码(javap)。

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

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

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

我使用JAD反编译器。

它有一个Eclipse插件jadeclipse。它很漂亮。

JD-GUI真的很好。您只需打开一个JAR文件,然后浏览代码 你正在开发一个IDE。好东西。