有人知道如何在内存中将.class内容加载到人类可读的格式中吗?我应该编写将使用此文件中的信息进行操作的程序
答案 0 :(得分:2)
如果您只是寻找方法名称和参数,字段,扩展类型等的声明,那么您应该使用Java反射和内省功能。
如果要访问已编译方法的字节代码,请查看asm或Apache bcel库。
答案 1 :(得分:1)
您可以使用javap工具对.class文件进行分解。
javap MyClass
假设我们有一个简单的类:
public class Test {
public void test() {...}
}
从命令行调用javap Test
将打印:
public class Test {
public Test();
public void test();
}
然后,您可以将此信息存储在数据结构中,如果要动态构建对象/调用方法,可以使用Reflection。