Java
flying881114
这个作者很懒,什么都没留下…
展开
-
System.out.println 和 System.err.println 使用问题
<br />System.out.println 和 System.err.println 都可以用于输出。但是今天当我将它们混合使用时(就是有的地方用System.out.println,有的地方用System.err.println....Don't ask me why),问题出现了: 每次运行输出结果的顺序都不一样:这个输出顺序不是deterministic的,真让人费解。<br />网上查了一下,大致有点明白了。这个问题大概跟System.out.println 和 System.err.prin原创 2011-02-28 23:24:00 · 4416 阅读 · 2 评论 -
运行Eclipse plugin时java.lang.NoClassDefFoundError
我的plugin工程用到dom4j包。虽然已经将其加入build path里,compile通过,但是运行plugin时出现java.lang.NoClassDefFoundError: org/dom4j/DocumentHelper.这问题不止局限于dom4j。貌似很多人用第三方jar包运行plugin时都会遇到这问题。解决方法如下:1. 将dom4j.jar放到你plugin p原创 2012-03-11 16:53:09 · 2035 阅读 · 0 评论 -
Eclipse plugin -- Antlr 使用
<br />首先,安装Antlr Eclipse plugin<br />http://antlreclipse.sourceforge.net/<br />这个网站也有安装的详细步骤图解。<br /> <br />安装成功后重启Eclipse,然后新建一个Java project。<br />右击project,选择"Toggle ANTLR project nature"。之后你会看到project的图标上多了一个像鹿角一样的可爱东东。<br /> <br />之后呢,就可以在这个project src原创 2011-04-23 14:55:00 · 5433 阅读 · 0 评论 -
Java eLOC(有效代码行) -- 去除空白行和注释行
eLOC(effective Lines Of Code, 有效代码行)区别于一般LOC(Lines Of Code)的地方在于,eLOC并不考虑空白行,注释行,还有只包含 "{" 或“}" 的代码行。之所以称之为有效代码行,是因为这种衡量方式能更好地描述programmer productivity和code understandability.下面的代码利用正则表达式来判断空白行,注释行,和stand-alone的大括号行。输入的字符串是一行代码,若返回true则说明此行代码是eLOC,false则原创 2011-04-09 22:34:00 · 11033 阅读 · 0 评论 -
Java Runtime.exec()注意事项
0. Runtime.exec()用来执行外部程序或命令1. Runtime.exec() 有四种调用方法 * public Process exec(String command); * public Process exec(String [] cmdArray); * public Process exec(String command, String [] envp); * public Process exec(String [] cmdArray,原创 2011-03-23 21:52:00 · 36692 阅读 · 2 评论 -
java.util.ConcurrentModificationException
运行程序出现java.util.ConcurrentModificationException异常。一开始我对此异常有关concurrent非常不解,因为程序很简单,并没有涉及线程同步之类的内容,只是用Iterator遍历了一个Set而已。网上查了一下,对Iterator的工作机制摘录如下:Iterator是工作在一个独立的线程中,并且拥有一个 mutex锁,就是说Iterator在工作的时候,是不允许被迭代的对象被改变的再回头看看自己的程序:用Iterator遍历Set的同时,在***条件满足的情况下对S原创 2011-03-11 13:10:00 · 978 阅读 · 0 评论 -
Linux下配置JDK, Ant以及相关Tips
<br />前言: 本人系统Ubuntu,完毕。<br /><br /><br />1. JDK 安装<br /><br />Linux下安装JDK的教程很多,在这里我只贴出自己参考的一个教程:http://forum.ubuntu.org.cn/viewtopic.php?t=183803<br /><br />JDK安装的基本步骤:下载JDK bin文件 -> 修改其权限使其可执行 -> 执行 -> 得到jdk1.6.0_24 目录。具体细节上面网址都有介绍到。<br /><br />至原创 2011-03-13 18:47:00 · 3163 阅读 · 0 评论 -
Eclipse JDT--ASTParser介绍
要解析Java源码,首先要建立ASTParser的实例。此过程最重要的一点是,你要告诉parser需要解析的内容类型。ASTParser支持对一下四种内容的解析:1. K_COMPILATION_UNIT: 一个编译单元,一般就是完整的Java文件2. K_STATEMENTS: Java statements,比如赋值语句,或是if语句块,while语句块等。此类型不需要文件是完整的编译单元,但需要是完整的statements。比如if语句块要作为一个完整的statement输入,否则会报错。3. K_E原创 2011-02-16 11:21:00 · 23283 阅读 · 6 评论 -
Eclipse JDT--ASTParser使用
上一篇文章介绍了一些背景知识以及如何创建一个ASTParser,下面给出一些使用AST的例子。创建ASTParser并将Java源文件解析成AST:// Initialize ASTParser ASTParser parser = ASTParser.newParser(AST.JLS3); //initialize parser.setKind(ASTParser.K_COMPILATION_UNIT); //to parse compilation unit parser.se原创 2011-02-16 12:45:00 · 12937 阅读 · 10 评论 -
Eclipse JDT--AST入门
最近做program analysis,需要解析Java的源代码,于是就去看了看Abstract Syntax Tree(AST,中文为抽象语法树)。有点无奈的是,网上关于这方面的资料比我想象中的少,可能是涉及的东西太底层了吧。AST一般属于编译原理方面的内容,也经常用于程序分析等等。简单来说,你写了一坨代码,编译器会把代码转化成一棵抽象语法树用于“理解”。每个树节点代表一个代码元素,也有自己的属性什么的。关于AST的细节一两句话肯定说不清楚, 不过好消息是,Eclipse JDT中有现成的ASTParse原创 2011-02-16 00:03:00 · 18358 阅读 · 11 评论 -
Runtime exec: 读InputStream & ErrorStream 没反应
用Runtime exec 执行一个命令时,我希望能读出命令的输出和error,于是我先读Input, 再读error Process p = Runtime.getRuntime().exec(command); BufferedReader reader = new BufferedReader(new InputStreamReader( p.getInputStream(原创 2013-11-14 19:27:10 · 2813 阅读 · 0 评论