maven依赖
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.13.0</version>
</dependency> 代码:
import org.apache.commons.io.FileUtils;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.dom.AST;
import org.eclipse.jdt.core.dom.ASTParser;
import org.eclipse.jdt.core.dom.CompilationUnit; import java.io.File;
import java.util.Map; import static org.eclipse.jdt.core.dom.AST.JLS8; public class JdtTest { public static void main(String[] args) {
ASTParser parser = ASTParser.newParser(AST.JLS8); //设置Java语言规范版本
parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setCompilerOptions(null);
parser.setResolveBindings(true); Map<String, String> compilerOptions = JavaCore.getOptions();
compilerOptions.put(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_8); //设置Java语言版本
compilerOptions.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_8);
compilerOptions.put(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_8);
parser.setCompilerOptions(compilerOptions); //设置编译选项 String src = null;
try {
src = FileUtils.readFileToString(new File("LoginController.java"),"UTF-8"); //要解析的文件
} catch (Exception e) {
e.printStackTrace();
}
parser.setSource(src.toCharArray());
CompilationUnit cu = (CompilationUnit) parser.createAST(null); //下个断点可以看看cu的types成员就是整个语法树
System.out.println(cu);
}
}

最新文章

  1. mysql优化笔记之分页
  2. WP8解析JSON格式(使用Newtonsoft.Json包)
  3. MXNet设计笔记之:深度学习的编程模式比较
  4. Reactjs 入门基础(二)
  5. JS中的各种检测
  6. CocoaPods的安装[转载]
  7. 戴文的Linux内核专题:06配置内核(2)
  8. LTE参考资料
  9. 《第一行代码--Android》阅读笔记之数据持久化
  10. PAT-乙级-1022. D进制的A+B (20)
  11. 标准I/O库之标准输入、标准输出和标准出错
  12. redis 梳理笔记(二)
  13. axios封装
  14. Erlang Port 小心换行
  15. 记一次Dynamic Batching不生效的爬坑实例分析[Unity]
  16. ssh服务及安全配置
  17. StatefulSet和Deployment的区别
  18. 使用C#利用cmd来调用java jar包获取其中的数据
  19. Javascript时间以及格式化秒
  20. let与const心智模型

热门文章

  1. lucene 异常 Lock obtain timed out 解决方法
  2. 硬件(MAC)地址的概念及作用
  3. Windows下MySQL備份與還原
  4. Atitit.协议的转换smb2http 原理
  5. CSS3主要知识点复习总结+HTML5新增标签
  6. C++语言基础(17)-运算符重载
  7. 设备模型的基础---kobject,kset
  8. UI-2-UILabel&amp;UIImageView-补充
  9. Java中List的排序和List的MAp
  10. DataUml Design 教程4-代码生成