参考: hankcs
http://www.hankcs.com/program/java/lucene-combat-2nd-edition-book-with-code-compiled-under-the-idea.html
最基础的Ant编译:
点击右边的加号载入lia2e下的build.xml脚本,接着在列表里双击某单元对应的程序就行了:
通过IDEA Configuration编译运行:
新建一个控制台配置,选择主类:
编译运行报错:
java: 找不到符号
符号: 方法 next()
位置: 类型为org.apache.lucene.analysis.TokenStream的变量 ts
这是因为lia/analysis/nutch/NutchExample.java需要使用Lucene 2.4.0,但是配书代码用的是3.0:
<!– Nutch uses Lucene 2.4.0, but the rest of the sources use 3.0.0,
so we set up a separate compile target & classpath –>
解决方案是注释掉NutchExample,在第四章要用到的话再改回了来用Ant编译。
接下来编译成功,运行出错:
Exception in thread "main" java.lang.NullPointerException at java.io.File.<init>(File.java:277) at lia.meetlucene.Indexer.<init>(Indexer.java:68) at lia.meetlucene.Indexer.main(Indexer.java:52)
少了两个参数而已,改成:
public static void main(String[] args) throws Exception { args = new String[2]; args[0] = "E:/xiaodajun/new/lia2e/src/lia/meetlucene"; args[1] = "E:/xiaodajun/new/lia2e/src/lia/meetlucene/data";//"src/lia/meetlucene/data";
写成相对地址时,仍然不能解决问题,换成据对地址于是就对了。
或是:
参考blog:eclipse ,修改Program arguments。