Eclipse插件中的Lucene NoSuchMethodError

时间:2015-12-22 12:38:13

标签: java eclipse eclipse-plugin lucene nosuchmethoderror

编辑:此问题已解决。出于某种原因,Eclipse的插件目录中确实存在另一个版本的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-analyzers-common-5.3.1和lucene-core-5.3.1)添加到我的插件的依赖项中。我还将org.apache.lucene.store添加到我的插件的Exported Packages中(如Eclipse所示,因此调用该方法的插件可以捕获LockObtainFailedException)。这就是我对Lucene所做的一切。

有人能告诉我忘记/不知道的事吗? (如果不是很明显,我完全不熟悉Eclipse插件)

编辑: 我还尝试将jar直接添加到调用Lucene方法的插件中(通过在清单中添加Bundle-ClassPath的路径)。没有改变任何事情。

我还读到,由于另一个版本的Lucene在我的类路径中的某个地方,可能会出现这样的问题。我确定情况并非如此。

1 个答案:

答案 0 :(得分:1)

由于某些原因,Eclipse的plugins目录中确实存在另一个(较旧的)Lucene文件版本。这些都是问题所在。我删除了它们并删除了清单中的版本标记。