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

v8wbuo2f  于 2021-07-11  发布在  Java
关注(0)|答案(19)|浏览(420)

**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

5年前关门了。

锁定。这个问题和它的答案是锁定的,因为这个问题是离题的,但有历史意义。它目前不接受新的答案或互动。

我可以用什么程序反编译类文件?我真的会得到java代码,还是仅仅是jvm汇编代码?
在这个网站上的java性能问题上,我经常看到那些“反编译”java类文件以了解编译器如何优化某些东西的人的回答。

yacmzcpb

yacmzcpb16#

我使用jad反编译程序。
它有一个eclipse插件jadeclipse。很不错。

siv3szwd

siv3szwd17#

我试了几次,procyon似乎对我最有效。它正在积极开发中,支持java最新版本的许多特性。
以下是我尝试过的其他方法:
成本加运费
有希望,但经常失败的方法反编译。我会一直盯着这个。还积极开发支持最新的java特性。
喀拉喀托
采取了一种不同的方法,它试图输出等效的java代码,而不是试图重建原始源代码,这有可能使模糊代码变得更好。从我的测试来看,它与procyon大致相当,但还是很高兴有不同的东西。我不得不用 -skip 命令行标志,以便在出现错误时不会停止。非常有趣的是,它是用python编写的。
京东gui
成功了,但procyon的产量要高得多。下面是一个比较procyon输出与原始和jdgui的页面。jdgui也可以作为eclipse插件使用,这对我来说根本不起作用。似乎不是开源的,开发似乎是零星的。
杰德
工作,但只支持Java1.4及以下版本。也可以作为eclipse插件使用。不再开发。

jtjikinw

jtjikinw18#

要查看java源代码,请查看一些反编译器。去找杰德。
如果您想查看字节码,只需使用jdk附带的javap。

ktecyv1j

ktecyv1j19#

有几个反编译程序。。。快速搜索可得到:
procyon:开源(apache2)并积极开发
krakatau:开源(gplv3)并积极开发
cfr:开放源码(mit)并积极开发
杰德
dj java反编译器
摩卡
还有更多。
它们产生java代码。java附带了一些东西,可以让您看到jvm字节码(javap)。

相关问题