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

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


当前回答

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

其他回答

看看卡瓦伊。

对于OSX,我建议使用jarzilla或JD-GUI

它们都允许你查看罐子、战争等。文件内容并反编译其中的任何类文件。

Jarzilla: https://code.google.com/p/jarzilla/ JD-GUI: http://jd.benow.ca/

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

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

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

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

DJ解码器 摩卡

JAD不为我工作(Ubuntu 11.10问题),所以我已经前进和浸泡在JODO。至少它有Open Java源代码,并且能够正确地反编译我的.class。

我建议先查看“分支/通用”分支。树干不稳。