NoClassDefFoundError: org/eclipse/search/ui/text/TextSearchQueryProvider

NoClassDefFoundError: org/eclipse/search/ui/text/TextSearchQueryProvider

我正在为 Eclipse 写一个插件。调用 TextSearchQueryProvider sqProvider = TextSearchQueryProvider.getPreferred(); 时,我得到 NoClassDefFoundError.

有趣的是,我只在导出的 jar-plugin 上得到这个,而不是在调试插件时。我想,这可能与导出 org.eclipse.search-plugin 有关,但该插件非常基础,eclipse 无论如何都不会 运行。所以我想插件应该在那里。

我是运行ning eclipse photon (4.8.0)。

更多说明: 我已将 org.eclipse.search 指定为 MANIFEST.MF 中的依赖项:

Require-Bundle: javax.inject,
 org.eclipse.search;bundle-version="3.0.0";visibility:=reexport,
 ....

我导入了org.eclipse.search.ui.text.TextSearchQueryProvider

我还需要做其他我不知道的事情吗?

补充: 插件相关的视图没有显示出任何明显的问题。 具体来说,版本“3.11.200.v20180503-1856”满足 'org.eclipse.search' 依赖性,这对我来说意味着插件已成功链接?

在我用另一个版本后缀导出插件后,问题就消失了。 我最初将后缀称为 "beta"。在给它一个带有日期的新后缀之后, 依赖树似乎工作正常。可能是原始包在 MANIFEST 中有错误和配置错误,只有在使用不同的名称重新导出后,pacakge 依赖项才重新正确评估。