- 浏览: 695418 次
- 性别:
- 来自: 福建
文章分类
最新评论
-
羽翼的心动:
同意2楼的说法,我们公司之前一个项目用过pageoffice, ...
poi导出excel文件工具类 -
贝塔ZQ:
poi实现导出excel文件,蛮麻烦的,用pageoffice ...
poi导出excel文件工具类 -
aishiqiang:
为什么我的项目配置好证书后,每次使用jenkinst自动构建包 ...
关于使用https协议,cas认证PKIX path building failed错误解决方法 -
zhongmin2012:
谢谢分享,正在想看
AST解析java源文件相关jar包 -
mybestroy1108:
感谢分享!受益良多!
Jboss7 JMS demo
今天有个处理需要涉及到java源文件的解析,baidu、google搜索了下,知道 eclipse 的 AST 可以解析java源文件,做了测试,老是报出异常来,后来发现是相关jar包少了,以免各位朋友犯同样的错误,把用到的相关jar文件贴出来,附件就是这些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
贴段相关代码:
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
贴段相关代码:
import java.io.BufferedInputStream; import java.io.FileInputStream; import org.eclipse.jdt.core.dom.AST; import org.eclipse.jdt.core.dom.ASTParser; import org.eclipse.jdt.core.dom.CompilationUnit; /** * java源文件解析操作 * @author linym * @version 2010-08 */ public class JdtAst { private ASTParser astParser = ASTParser.newParser(AST.JLS3);//非常慢 /** * 获得java源文件的结构CompilationUnit * @param javaFilePath java文件的绝对路径 * @return CompilationUnit * @throws Exception */ public CompilationUnit getCompilationUnit(String javaFilePath) throws Exception { BufferedInputStream bufferedInputStream = new BufferedInputStream( new FileInputStream(javaFilePath)); 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));//很慢 return result; // List commentList = result.getCommentList(); // PackageDeclaration package1 = result.getPackage(); // List importList = result.imports(); // TypeDeclaration type = (TypeDeclaration) result.types().get(0); // FieldDeclaration[] fieldList = type.getFields(); // MethodDeclaration[] methodList = type.getMethods(); // Block method_block=methodList[1].getBody(); // TryStatement try_stmt=(TryStatement)method_block.statements().get(0); // ForStatement for_stmt=(ForStatement)try_stmt.getBody().statements().get(0); // ExpressionStatement express_stmt=(ExpressionStatement) ((Block)for_stmt.getBody()).statements().get(0); } }
- AST解析java源文件jar.rar (6.1 MB)
- 下载次数: 944
评论
5 楼
zhongmin2012
2016-05-28
谢谢分享,正在想看
4 楼
xuranpaoche
2013-07-04
不错,这两天需要做从java源文件反向工程到模型,正好用到!赞一个,希望作者再贴一些关于这个的注意事项或者是解释。
3 楼
夕星银梦
2012-05-23
报错啊
Exception in thread "main" java.lang.NoSuchFieldError: ignoreMethodBodies
at org.eclipse.jdt.core.dom.CompilationUnitResolver.parse(CompilationUnitResolver.java:491)
at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1194)
at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:801)
at com.AST.JdtAst.getCompilationUnit(JdtAst.java:37)
at com.AST.JdtAst.main(JdtAst.java:54)
Exception in thread "main" java.lang.NoSuchFieldError: ignoreMethodBodies
at org.eclipse.jdt.core.dom.CompilationUnitResolver.parse(CompilationUnitResolver.java:491)
at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1194)
at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:801)
at com.AST.JdtAst.getCompilationUnit(JdtAst.java:37)
at com.AST.JdtAst.main(JdtAst.java:54)
2 楼
Luminosite
2012-03-18
非常有用,谢谢。这八个文件果然是一个也不能少呀 搞了半天终于在plugins里把这几个文件都找到了。eclipse3.4提示里core.runtime.job.xxx竟然对应着core.job.xxx害的我半天没找到。
1 楼
sunlightas
2011-11-08
这个东西不错,哈哈
发表评论
-
linux 定时任务检查服务器是否正常
2014-02-28 22:21 4636通过curl命令判断url返回状态,以此来确定服务是否正常: ... -
poi导出excel文件工具类
2014-01-20 21:54 7203package m.utils.excel; imp ... -
课程设计--家庭财务管理系统
2012-04-14 16:58 1785记得第一次接触FLEX3是在毕业那一年,那时已经工作了大半年了 ... -
what's MINA?
2011-03-15 23:09 1327what's MINA? Apache MINA is a ... -
如何避免吧.svn文件编译到classes目录下
2011-01-25 09:47 0SVN是一个很好用的版本管理根据,但有一个很烦人的问题用ecl ... -
Java 异常处理及其应用
2010-10-26 12:46 1332Java 异常处理的忌讳引 ... -
使用ejb3配置开发SessionBean
2010-08-25 17:06 0Session Bean除了可以使用注释来发布外,也可以使用相 ... -
oracle clob类型处理
2010-08-23 11:13 0oracle clob类型处理 update clob字段放 ... -
ibatis 事务回滚操作
2010-08-11 13:54 0public StateBean deleteTask(M ... -
设计模式 之 “适配器模式[Adapter Pattern]”
2010-07-15 08:58 1069适配器模式[Adapter Pattern]类图 适配器模 ... -
帮朋友写的个关键字搜索器
2010-07-14 10:33 1372上礼拜一朋友让我帮忙写个小软件,需求大概是这样的:一个 ... -
实现xml到JavaBean的转换
2010-05-15 22:08 1630今天心血来潮,想实现xml到JavaBean的实现,baidu ... -
使用apache mail发送邮件错误解决办法
2010-04-28 16:29 7886今天在写发送邮件的程序时发现了以下两个些错误,贴出来跟大家分享 ... -
jbpm4部署异常
2010-03-15 10:11 0java.lang.LinkageError: loader ... -
spring 单元测试:java.lang.SecurityException
2010-03-05 20:06 0spring 单元测试抛出: java.lang.Secur ... -
eclipse安装spket插件(javascript工具)
2009-12-18 15:29 0eclipse安装spket插件(javascript工具) ... -
使用java excel api 导出数据到excel
2009-12-11 16:06 0找到一个java操作excel的api,连接地址http:// ... -
java int转byte[]
2009-11-05 13:39 0/** * int转byte[] * @pa ... -
附件下载
2009-10-28 14:35 0/** * 下载 * @param reques ... -
数值用千位分隔的方法
2009-10-24 08:57 1623将数值用“,”分隔或其它符号分隔的正则表达式如下: (?& ...
相关推荐
包括以下包:jdt-3.2.1-r321_v20060823.jar、 jdt-3.3.0-v20070607-1300.jar、jdt-3.4.2_r894.jar、jdt-compiler.jar、org.eclipse.datatools.enablement.jdt.classpath_1.0.1.v201107221501.jar、org.eclipse.jdt....
Java常见的jar包,里面包括javaee.jar,jstl.jar,oscache.jar包
eclipse 使用 AST 简单解析抽象语语法树所需要的jar包
利用Eclipse工具分析代码时候,添加哪些jar包才能正确运行呢,下载便可知道答案!
Eclipse ASTView需要的jar包,基本上已经全了,一共12个
lombok.ast,Java语言的健壮解析器 AST。.zip
在MyEclipse中通过Struts ...此外,jar包全部正确导入之后可能还会出现java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 的异常,所以还需要删除antlr-2.7.2这个包,删包的方法网上有很多,很容易找到。
基于javaparser实现的java源码AST解析和混淆,而不必基于字节码。一行代码即可引用:CodeParser.codeParser("Java代码")。通过AST解析后,混淆代码的方法名、参数、变量名,可全部替换为空格或a ~ z、A ~ Z字母。...
Eclipse AST分析java源码.doc Eclipse AST分析java源码.doc
eclipse cdt 解析C++ AST
标签:11、ast_2、json4s、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
用于JavaScript / TypeScript的Java Parser,也基于 ,语法也来自(因此请报告错误并打开与上游语法相关的请求) 使用范例 import { parse , createVisitor } from 'java-ast' ; const countMethods = ( source : ...
标签:json4s、ast、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
弹性标记flexmark-java是解析器的Java实现,使用块,在Markdown解析体系结构后内联。 它的优势是速度,灵活性,基于Markdown源元素的AST,以及源位置的详细信息,直至构成元素的词素的单个字符和可扩展性。 该API...
Java Development Tools (JDT,Java开发工具) Abstract Syntax Tree (AST,抽象语法树) Java Model(Java模型)
一种用于比较两个相似的Java源文件之间的一些基本AST差异的工具。 检测到的差异属于以下六类之一: AM:添加新方法DM:删除方法CM:更改方法的主体。 AF:添加一个字段DF:删除字段CFI:更改字段初始化程序的定义:i...
JSON AST解析器安装> npm install json-to-ast用法const parse = require ( 'json-to-ast' ) ;const settings = { // Appends location information. Default is <true> loc : true , // Appends source information...
一个Java源码AST可视化工具,可以选择代码块然后查看对应的抽象语法树节点信息,这从 https://github.com/INRIA/spoon/tree/master/spoon-visualisation 下编译得到的文件,已经将命令打包为 run.bat ,解压后直接...
ast-core-2.2.jar