• 《Lucene实战(第2版)》 配书代码在IDEA下的编译方法


    参考: 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。

     

     

  • 相关阅读:
    Docker 我的常用命令
    Docker 已运行容器修改配置
    Docker .NET Core项目run起来
    Docker 安装运行mssql-server-linux
    Docker Mssql 还原数据库到Linux
    Nginx(四)------nginx 负载均衡
    nginx(二)------nginx.conf 配置文件
    Nginx(一)------简介与安装
    MySQL主从复制作用和原理
    设计模式:策略模式
  • 原文地址:https://www.cnblogs.com/XDJjy/p/4323642.html
Copyright © 2020-2023  润新知