由于eclipse提供了OSGi环境,因此您可以参考文章“
在OSGi中公开引导类路径 ”,然后尝试使用:
- 系统软件包声明
- 扩展捆绑(片段)声明
- 或启动委托
通过指定所需的JDK软件包,OSGI框架将尝试加载它们(如果此处未包含,则会失败)。
通过指定特定于JDK5或JDK6的版本,您甚至可以确保JDK的正确版本。
OSGi规范允许框架(通过其系统捆绑包)使用该
org.osgi.framework.system.packages属性将其父类加载器中的所有相关软件包导出为系统软件包。
由于将主机重新打包JDK为捆绑包不是一个可行的选择,因此可以使用此设置让系统捆绑包(或ID为0的捆绑包)自行导出这些软件包。
大多数OSGi实现已使用此属性来导出所有公共JDK包(基于检测到的JDK版本)。以下是Java 1.6的Equinox配置文件的摘录:
org.osgi.framework.system.packages = javax.accessibility, javax.activity, javax.crypto, javax.crypto.interfaces, … org.xml.sax.helpers
使用此属性,可以添加额外的程序包,这些程序包将由框架加载和提供,并且可以连接到其他捆绑软件。
org.osgi.framework.system.packages = javax.accessibility, javax.activity, … org.xml.sax.helpers, special.parent.package
注意:指定的更简单解决方案
Bundle-RequiredExecutionEnvironment仅适用于JRE,而不适用于JDK。
这种配置需要成为Equinox框架的config.ini的一部分(有关Jetty及其config.ini,请参见此示例)。
在您的情况下,它将在片段的config.ini中声明。



