Java 访问.class文件中的符号表

Java 访问.class文件中的符号表,java,bytecode,symbol-table,Java,Bytecode,Symbol Table,对于Java中的任意代码库,我想(从概念上)创建一个表,列出符号和类型之间的用法和用法关系。符号表包含我需要的信息。然而,编写前端似乎是一项艰巨的任务,可能会把我的项目变成一个更大的子项目。在我看来,没有理由这样做,因为字节码,Java.class文件中必然包含每个类的符号表,以便它能够解析类型和引用 我的问题是— 如何以编程方式访问一组符号中的符号表 .class文件,以便创建所需的USES/USED-BY表?有 任何人都已经这样做了(答案肯定是肯定的),并且是工具 要做到这一点还没有一个图书

对于Java中的任意代码库,我想(从概念上)创建一个表,列出符号和类型之间的用法和用法关系。符号表包含我需要的信息。然而,编写前端似乎是一项艰巨的任务,可能会把我的项目变成一个更大的子项目。在我看来,没有理由这样做,因为字节码,Java.class文件中必然包含每个类的符号表,以便它能够解析类型和引用

我的问题是—

如何以编程方式访问一组符号中的符号表 .class文件,以便创建所需的USES/USED-BY表?有 任何人都已经这样做了(答案肯定是肯定的),并且是工具 要做到这一点还没有一个图书馆


看一看。这是一个从字节码检索依赖项的示例。不过,如果您使用最近推出的,它可以大大简化。

看一看。这是一个从字节码检索依赖项的示例。虽然如果你使用最近引入的字节码,它可以大大简化。

你可以使用字节码,之后就是文本解析。

你可以使用字节码,之后就是文本解析。

是的,我知道ASM字节码框架,我可能最终会使用它,但我想我的问题是,你是否知道有很多关于使用它的文章,其中一些可以在他们的网站上找到,如果有封面只是这样做的话——从字节码中的符号表中提取信息?还是有更好的方法来做我想做的事?在我以前的教程中介绍了依赖类的提取,我添加了一个链接到我的答案。“符号表”(它实际上被称为常量池)的问题是,它脱离了上下文,你无法分辨常量的使用来源和用途。是的,我知道ASM字节码框架,我可能最终会使用它,但我想我的问题是,你是否碰巧知道关于使用它的许多论文,其中一些可以在他们的网站上找到,如果有封面的话就是这样做的——从字节码中的符号表中提取信息?还是有更好的方法来做我想做的事?在我以前的教程中介绍了依赖类的提取,我添加了一个链接到我的答案。“符号表”(它实际上被称为常量池)的问题在于它脱离了上下文,您无法分辨常量的使用来源和用途。