2

我将我的 RCP 应用程序从 Eclipse Oxygen 移到了 Photon,也从 Java 8 移到了 Java 10。

如果我从 Eclipse 启动代码,则代码可以编译并且应用程序可以正常工作。但是,当我尝试构建应用程序时,出现错误:

plug-in JavaSE_0.0.0 has not been found
Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-10
    Host plug-in JavaSE_0.0.0 has not been found.

我在 Google 上找不到任何有用的解决方案。也许你们中的一些人可以帮助我。

我的清单文件包含此标头:

Bundle-RequiredExecutionEnvironment: JavaSE-10
4

2 回答 2

1

这似乎是一个 Eclipse 错误。Eclipse 似乎无法正确处理 JavaSE-10。

目前最简单的解决方案是使用Bundle-RequiredExecutionEnvironment: JavaSE-9JavaSE-10 而不是 JavaSE-10,并忍受这与 JRE 容器不匹配的警告。

于 2018-07-09T14:19:32.030 回答
0

从 OSGi 4.3 开始,指定最低 Java 版本的最合适方法是使用 Required-Capability 标头,如下所示:

Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=1.10))"

Bundle-RequiredExecutionEnvironment通过用上面的行替换所有出现的 ,我已经成功修复了报告的错误。在 PDE 中,您可能会在清单文件中收到警告,但可以放心地忽略它。产品验证和产品导出似乎没有问题。但是,我不确定的一件事是,当馈送不包含 BREE 标头的捆绑包时,P2 会如何反应。

或者,Eclipse 2018-09 现已发布,并且似乎提供了 JavaSE-10 环境描述(正好赶上 JavaSE 10 弃用...);我尚未测试 JavaSE 11 支持(可作为 Eclipse 2018-09 的插件使用)。

于 2018-09-28T19:09:47.570 回答