获取动态生成的java类的源代码

时间:2011-11-02 00:01:06

标签: java classloader decompiling javassist

我正在动态生成新类(使用Javassist),我希望能够获得这些生成的类的源代码。

是否有用于以编程方式反编译字节代码的库?请注意,我想要反编译的字节代码在文件系统中不存在,只存在于内存中。

1 个答案:

答案 0 :(得分:3)

如果要反编译(即获取原始源),请将CtClass保存到磁盘上的类文件中,然后使用反编译器,例如JD-GUI

ClassFile cf = someCtClass.getClassFile();
FileOutputStream os = new FileOutputStream("C:/somefilename.class");
cf.write(os);
os.close();

而不仅仅是在反编译器中打开C:/somefilename.class