3

我知道几种以“.class”结尾的文件的解决方案,您可以在其中使用 ByteCode Outline 插件,或 Bytecode Visualiser 插件,甚至是类文件的内置“javap-like”查看器。

但我希望在调试时为运行时生成的代码提供这种能力!我想要实现的是从执行的 clojure 调用中查看实际生成的代码。这使用 ASM 动态生成类。

4

2 回答 2

1

使用 Eclipse IDE,您可以将JAD(Java 反编译器)与JADClipse插件结合起来,在调试器尝试打开没有链接源的类文件时即时反编译您的类文件。如果没有 eclipse,您可以将 JAD 用作独立的可执行文件,但它对用户不太友好。

JAD 将为类文件生成 java 源代码,即使它是使用 java 汇编程序构建的。这是可能的,因为 java 语言足够接近 jvm 的功能。唯一不能处理的类文件是那些已经通过混淆器运行以防止反编译的类文件

于 2013-01-23T09:25:09.903 回答
0

除了 JAD,还有其他工具。一个叫JD(Java Decompiler)。它还有一个 eclipse 插件,比 JAD 好一点,因为它支持 Java 5,JAD 只支持 Java 4(据我所知,自 2001 年以来,JAD 没有任何开发或其他方面)。似乎支持 Java 6 的工具是DJ Java Decompiler,但我还没有测试过。

而且我不知道这些工具是否真的支持即时生成的代码,另一方面,我真的不明白为什么它们不应该。

于 2013-01-23T10:31:46.747 回答