解析java源文件_使用JDT.AST解析java源码

在做java源码的静态代码审计时,最基础的就是对java文件进行解析,从而获取到此java文件的相关信息;

在java文件中所存在的东西很多,很复杂,难以用相关的正则表达式去一一匹配。但是,eclipse 的一个插件

jdt是一个已经封装好了的,对java文件进行解析的jar包。

所需要的包:

org.eclipse.core.contenttype_3.4.100.v20100505-1235.jar

org.eclipse.core.jobs_3.5.0.v20100515.jar

org.eclipse.core.resources_3.6.0.v20100526-0737.jar

org.eclipse.core.runtime_3.6.0.v20100505.jar

org.eclipse.equinox.common_3.6.0.v20100503.jar

org.eclipse.equinox.preferences_3.3.0.v20100503.jar

org.eclipse.jdt.core_3.6.0.v_A58.jar

org.eclipse.osgi_3.6.0.v20100517.jar

maven中:

org.eclipse

jdt

3.3.0-v20070607-1300

org.eclipse

org.eclipse.osgi

3.8.0.v20120529-1548

org.eclipse.jdt

core

3.1.1

调用方法:

public class JdtAst {

private ASTParser astParser = ASTParser.newParser(AST.JLS3); // 非常慢

/**

* 获得java源文件的结构CompilationUnit

*/

public CompilationUnit getCompilationUnit(String filePath)

throws Exception {

BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(filePath));//读取java文件

byte[] input = new byte[bufferedInputStream.available()];

bufferedInputStream.read(input);

bufferedInputStream.close();

this.astParser.setSource(new String(input).toCharArray());

/**/

CompilationUnit result = (CompilationUnit) (this.astParser

.createAST(null)); // 很慢

result.getImports();//通过result去获取java文件的属性,如getImports是获取java文件中import的文件的。

return result;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值