我正在寻找一个允许我解析java源文件的java库,它为我提供了代码的AST表示。
实际上我只对带有注释的类和方法定义感兴趣。我不需要方法代码的AST。
我正在使用此信息进行代码生成。这就是我无法首先编译源文件以从结果类文件中获取信息的原因。在生成一些额外的类之前,代码无法编译而没有错误。
答案 0 :(得分:10)
Java 6支持将其作为编译器的本机部分,并为其提供标准API(javax.lang.model
)。你可以阅读它here。它专为您的用例而设计(即从注释和源代码生成代码)。
答案 1 :(得分:8)
答案 2 :(得分:2)
我认为NetBeans Javaparser可能是您感兴趣的内容。
答案 3 :(得分:2)
您可以使用java语言的语法文件尝试JavaCC。
答案 4 :(得分:2)
我找到了项目javaparser,它解析单个java文件并返回格式良好的AST。
答案 5 :(得分:2)
@tangens撰写了关于JavaParser的文章,但引用了一个现已过时的项目。
2011年有一个分支仍在积极维护,现在还解析Java 1.7和1.8。
你可以在那里找到它:https://github.com/javaparser/javaparser
免责声明:我是该项目的撰稿人。