我有一个任务,我需要编写一个Java程序来解析.class文件并检索如下内容:
1. .java文件的名称
2.implemented interfaces
3.variables
4.constructors
5.方法
我没有任何想法从哪里开始? 例如,我应该使用哪种数据I / O结构?
答案 0 :(得分:1)
已经有几个用于解析类文件的库。 Objectweb ASM是最受欢迎的。
如果你必须从头开始,我建议从JVM specification开始,这详细解释了类文件的二进制布局。之后,解析只是编程的一个简单问题。我之前写过一个类文件解析器,并不难。
答案 1 :(得分:0)
您可以使用Java Reflection。这是一个很好的教程 - >
答案 2 :(得分:0)
答案 3 :(得分:0)
您不需要任何外部库,只需使用java.lang.Class
即可。写下你班级的名字:
[NameOfMyClass].class.getDeclaredFields();
[NameOfMyClass].class.getDeclaredConstructors();
[NameOfMyClass].class.getDeclaredMethods();
接口和许多其他属性都是一样的。
答案 4 :(得分:0)
OpenJDK实际上带有一个API,使您可以以编程方式解析和处理大多数程序员都不知道的类文件。它位于软件包com.sun.org.apache.bcel.internal
上。