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 docs によると、クラスパスに4つのJarを追加して問題を解決しました。以下はドキュメントから。

"CLASSPATH の設定

まず、最新の Lucene ディストリビューションをダウンロードし、それを作業ディレクトリに抽出する必要があります。

Lucene JAR、クエリパーサー JAR、共通分析 JAR、および Lucene デモ JAR の 4 つの 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 というファイルが表示されるはずです。

これら 4 つのファイルすべてを Java CLASSPATH に入れます。」

于 2016-07-12T23:47:13.857 に答える