Eclipse 插件中的 Lucene NoSuchMethodError

Lucene NoSuchMethodError in Eclipse Plugin

编辑:此问题已解决。由于某种原因,在 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 添加到我的插件的导出包中(正如 Eclipse 所建议的那样,调用该方法的插件可以捕获 LockObtainFailedException)。这就是我对 Lucene 所做的一切。

有人可以告诉我我忘记/不知道的事情吗? (如果不是很明显,我对 Eclipse 插件完全陌生)

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

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

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