如何从我的Java程序中读取.class文件?

时间:2013-10-25 21:44:20

标签: java bytecode

有人知道如何在内存中将.class内容加载到人类可读的格式中吗?我应该编写将使用此文件中的信息进行操作的程序

2 个答案:

答案 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