运行时使用Lucene IndexableField的NoClassDefFoundError

时间:2013-02-18 02:10:08

标签: java ant runtime-error lucene

我编写了一个程序,它使用Lucene为刮刀发送文本匹配地址。在编译和运行NetBeans时,一切正常,但是当从命令行构建和运行时,我会收到以下信息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/index/IndexableField
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:186)

我发现IndexableField.class类不在任何jar文件中,所以我不知道为什么它首先起作用,更不用说为什么它从终端构建并运行后不起作用

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题。根据Lucene文档,我将4个Jars添加到类路径中并解决了问题。 以下是文档。

“设置CLASSPATH

首先,您应该下载最新的Lucene发行版,然后将其解压缩到工作目录。

您需要四个JAR:Lucene JAR,Queryparser JAR,通用分析JAR和Lucene演示JAR。您应该在解压缩归档时在创建的核心/目录中看到Lucene JAR文件 - 它应该命名为lucene-core- {version} .jar。您还应该分别在queryparser,analysis / common /和demo /下看到名为lucene-queryparser- {version} .jar,lucene-analyzers-common- {version} .jar和lucene-demo- {version} .jar的文件。

将所有这四个文件放在Java CLASSPATH中。“