gpt4 book ai didi

java - 来自 java 源的工件提取器

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:44 25 4
gpt4 key购买 nike

您是否知道可以解析 Java 源代码(例如来自 jar 文件或定义的类路径)的 C++ 库(开源,或免费用于非商业用途)?我想提取类、类成员、方法、方法调用以及这些工件之间的关系。

我一整天都在谷歌上搜索解决方案。要么我瞎了,要么不识字! :)

最佳答案

您无法从 jar 文件中获取源代码,因为那实际上是一组(二进制)类文件。假设您指的是可能已用于生成 jar 文件的源代码,那么就有一个不错的答案。

如果你想要一个开源的解决方案,你可以尝试ANTLR ,它有一个 Java 1.5 grammar AFAIK 将构建 AST。从中你可以“提取”你想要的项目的树,或者至少是感兴趣的子树的行号;从那里,您可以提取所需的代码。

我相信 ANTLR 可以配置为生成基于 C++ 的解析器。

要捕获它们之间的关系,您需要全名和类型解析,这样您才能知道标识符实际引用了哪个定义。为此,ANTLR 只是一个解析器并不能解决问题;你需要生活 Life After Parsing .

另一种可能是 Java 编译器;它提供了某种 API。

关于java - 来自 java 源的工件提取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com