将插件从1.6升级到1.7

时间:2014-01-24 11:06:38

标签: java eclipse osgi

我正在尝试将项目(一组插件)从1.6升级到1.7。 所以我改变了MANIFEST.MF Bundle-RequiredExecutionEnvironment: JavaSE-1.6Bundle-RequiredExecutionEnvironment: JavaSE-1.7但是,在升级之后,如果我尝试将插件导出为插件片段,我会收到此Eclipse错误:

Processing inclusion from feature org.eclipse.pde.container.feature: Bundle myplugin_1.0.0 failed to resolve.:
    Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.7
    Host plug-in JavaSE_0.0.0 has not been found.

编辑:

MANIFEST.MF:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Auth Plug-in
Bundle-SymbolicName: __NAME__;singleton:=true
Bundle-Version: 1.0.0
Bundle-Vendor: AVendor
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Export-Package: __A_PACKAGE_NAME__

如果我将Target-Platform更改为Running platform,则错误消失(但很明显,我无法切换整个项目的目标平台)。所以我怀疑目标平台在某种程度上是错误的......

编辑:

如果我删除该行

Bundle-RequiredExecutionEnvironment: JavaSE-1.7

导出成功。

3 个答案:

答案 0 :(得分:2)

呃,该项目使用的是eclipse 3.5.1,它应该在1.6上运行,而不是在1.7上运行。我的坏。

答案 1 :(得分:1)

如上所述:

  

我在升级到Java 8的RCP应用程序中遇到了同样的问题。从捆绑清单中删除'Bundle-RequiredExecutionEnvironment'条目有帮助。

答案 2 :(得分:0)

使用Eclipse Mars 4.5.0(Build id:20150621-1200)和Java 8时遇到了类似的问题。

MANIFEST.MF

清单 - 版本:1.0
Bundle-ManifestVersion:2
...
Bundle-RequiredExecutionEnvironment:JavaSE-1.8
Import-Package:org.osgi.framework; version =“1.3.0”

我没有删除“Bundle-RequiredExecutionEnvironment:JavaSE-1.8”这一行,我将其更改为“Bundle-RequiredExecutionEnvironment:JavaSE-1.7”,一切正常。