我们的一个插件需要安装JDK,而不仅仅是JRE.我们需要来自tools.jar的com.sun.javadoc和朋友.我不认为Sun的许可证会允许重新分发tools.jar(如果你已经拥有JDK则不需要).
Eclipse中似乎也没有办法将JDK指定为依赖项.Eclipse新闻组中的所有答案都表明最终用户必须首先正确配置他们的Eclipse.
你知道任何一种解决方法,只是通过使用Eclipse的依赖性机载机制,使这个依赖对我们插件的用户显而易见吗?看来这个包Import-Package在清单中甚至不起作用,不像com.sun.jdi.
(作为解决方法,目前我们只能在插件激活时警告此库缺失.)
由于eclipse提供了OSGi环境,您可以参考文章“在OSGi中暴露启动类路径”,并尝试使用:
\n\n通过指定您需要的 JDK 包,OSGI 框架将尝试加载它们(如果这里没有,则会失败)。
\n通过指定特定于 JDK5 或 JDK6 的版本,您甚至可以确保 JDK 版本正确。
\n\n\nOSGi 规范允许框架(通过其系统包)使用该
\norg.osgi.framework.system.packages属性从其父类加载器将任何相关包导出为系统包。
\n 由于将托管重新JDK打包为捆绑包不是一个可行的选择,因此可以使用此设置让系统捆绑包(或 ID 为 0 的捆绑包)自行导出这些包。
\n 大多数 OSGi 实现已经使用此属性来导出所有公共 JDK 包(基于检测到的 JDK 版本)。以下是 Java 1.6 的 Equinox 配置文件的片段:
org.osgi.framework.system.packages = \\\n javax.accessibility,\\\n javax.activity,\\\n javax.crypto,\\\n javax.crypto.interfaces,\\\n \xe2\x80\xa6\n org.xml.sax.helpers\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n使用此属性,可以添加额外的包,这些包将由框架加载和提供,并且可以连接到其他包。
\n
org.osgi.framework.system.packages = \\\n javax.accessibility,\\\n javax.activity,\\\n \xe2\x80\xa6\n org.xml.sax.helpers, \\\n special.parent.package\nRun Code Online (Sandbox Code Playgroud)\n\n注意:更简单的指定解决方案Bundle-RequiredExecutionEnvironment仅适用于 JRE,不适用于 JDK...
这种配置需要成为 Equinox 框架的 config.ini 的一部分(请参阅Jetty及其config.ini的示例)。\n在您的情况下,它将在片段的 config.ini 中声明。
| 归档时间: |
|
| 查看次数: |
5715 次 |
| 最近记录: |