是否有可能在eclipse中查看动态生成的字节码?

时间:2013-01-23 09:03:16

标签: java eclipse code-generation

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

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

2 个答案:

答案 0 :(得分:1)

使用eclipse IDE,只要调试器尝试打开没有链接的类文件,您就可以将JAD(java反编译器)和JADClipse插件组合在一起反编译您的类文件资源。没有eclipse,您可以将JAD用作独立的可执行文件,但它不太方便用户使用。

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

答案 1 :(得分:0)

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

我不知道这些工具是否真的支持动态生成的代码,另一方面我不明白他们为什么不应该这样做。