2

我编写了一个程序,它使用 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 文件中,所以我不知道为什么它首先可以工作,更不用说为什么它在从终端构建和运行后就不能工作了。

4

1 回答 1

0

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

“设置你的 CLASSPATH

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

您需要四个 JAR:Lucene JAR、queryparser JAR、通用分析 JAR 和 Lucene 演示 JAR。您应该在解压档案时创建的 core/ 目录中看到 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 中。”

于 2016-07-12T23:47:13.857 回答