类文件解析器

时间:2014-07-11 12:19:05

标签: java parsing .class-file

我有一个任务,我需要编写一个Java程序来解析.class文件并检索如下内容:

1. .java文件的名称

2.implemented interfaces

3.variables

4.constructors

5.方法

我没有任何想法从哪里开始? 例如,我应该使用哪种数据I / O结构?

5 个答案:

答案 0 :(得分:1)

已经有几个用于解析类文件的库。 Objectweb ASM是最受欢迎的。

如果你必须从头开始,我建议从JVM specification开始,这详细解释了类文件的二进制布局。之后,解析只是编程的一个简单问题。我之前写过一个类文件解析器,并不难。

答案 1 :(得分:0)

您可以使用Java Reflection。这是一个很好的教程 - >

Java Reflection Tutorial

答案 2 :(得分:0)

  • 您可以在Apache commons库中找到ClassParser。你可以阅读Javadoc here。您可以从here
  • 下载apache commons
  • 您还可以使用Java反射API,它提供getDeclaredFiledsgetDeclaredMethods等方法。

答案 3 :(得分:0)

您不需要任何外部库,只需使用java.lang.Class即可。写下你班级的名字:

[NameOfMyClass].class.getDeclaredFields();
[NameOfMyClass].class.getDeclaredConstructors();
[NameOfMyClass].class.getDeclaredMethods();

接口和许多其他属性都是一样的。

答案 4 :(得分:0)

OpenJDK实际上带有一个API,使您可以以编程方式解析和处理大多数程序员都不知道的类文件。它位于软件包com.sun.org.apache.bcel.internal上。