編集:この問題は解決されます。何らかの理由で実際にEclipseのpluginsディレクトリに別のバージョンのLuceneファイルがありました。
私はEclipseプラグインでLuceneを使用しようとしています。メソッドは別のプラグインから呼び出されるはずです。
私がJavaアプリケーションとしてプロジェクトを実行している限り素晴らしい作品です。しかし、他のプラグインからメソッドを呼び出そうとすると、次のエラーが発生します。
java.lang.NoSuchMethodError: org.apache.lucene.store.FSDirectory.open(Ljava/nio/file/Path;)Lorg/apache/lucene/store/FSDirectory;
もちろん、このメソッドはJavaアプリケーションとして完全に正常に動作するため、実際に存在します。したがって、私はそれを動作させるためにプラグイン固有の何かをしなければならないと思います。
私は必要なLucene-jars(lucene-analyzer-common-5.3.1とlucene-core-5.3.1)を私のプラグインの依存関係に追加します。また、私のプラグインのエクスポートされたパッケージにorg.apache.lucene.storeを追加しました(Eclipseで提案されているように、メソッドを呼び出すプラグインはLockObtainFailedExceptionをキャッチできます)。それはLuceneに関して私がやったことのすべてです。
誰かが私が忘れてしまったことを教えてもらえませんか?(分かりませんが、私は完全にEclipseプラグインの新機能です)
編集: 私は、Luceneメソッドを呼び出すプラグインに直接JARファイルを追加しようとしました(マニフェストのBundle-ClassPathへのパスを追加することによって)。何も変更しませんでした。
私はまた、このような問題はLuceneの別バージョンがクラスパスのどこかにあるために発生する可能性があることを読んでいます。
回答:
回答№1は1何らかの理由で実際にEclipseのpluginsディレクトリに別の(古い)バージョンのLuceneファイルがありました。これらが問題でした。私はそれらを削除し、マニフェストのバージョンタグを削除しました。