gpt4 book ai didi

eclipse - 取决于 Eclipse 中 tools.jar (Sun JDK) 的 com.sun.javadoc

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:57 28 4
gpt4 key购买 nike

我们的一个插件需要安装 JDK,而不仅仅是 JRE。我们需要 com.sun.javadoc 和 tools.jar 中的 friend 。我认为 Sun 的许可证不允许重新分发 tools.jar(如果您已经拥有 JDK,则不需要)。

在 Eclipse 中似乎也没有办法将 JDK 指定为依赖项。 Eclipse 新闻组中的所有答案都表明最终用户必须首先正确配置他们的 Eclipse。

您是否知道任何变通方法可以使我们插件的用户明显地了解这种依赖性,只需使用 Eclipse 的板载依赖性机制?看起来这个包甚至对 list 中的 Import-Package 都无效,不像 e.g. com.sun.jdi.

(作为变通方法,目前我们只能在插件激活时警告该库丢失。)

最佳答案

由于eclipse提供了OSGi环境,你可以引用文章“Exposing the boot classpath in OSGi”,尝试使用:

  • 系统包声明
  • 扩展包(片段)声明
  • 或引导委托(delegate)

通过指定您需要的 JDK 包,OSGI 框架将尝试加载它们(如果没有则失败)。
通过指定一个特定于 JDK5 或 JDK6 的版本,您甚至可以确保 JDK 的正确版本。

The OSGi spec allows the Framework (through its system bundle) to export any relevant packages from its parent class loader as system packages using the org.osgi.framework.system.packages property.
As repacking the hosting JDK as a bundle isn't a viable option, one can use this setting to have the system bundle (or the bundle with id 0) export these packages itself.
Most of the OSGi implementations already use this property to export all the public JDK packages (based on the detected JDK version). Below is a snippet from an Equinox configuration file for Java 1.6:

org.osgi.framework.system.packages = \
javax.accessibility,\
javax.activity,\
javax.crypto,\
javax.crypto.interfaces,\

org.xml.sax.helpers

Using this property, one can add extra packages that will be loaded and provided by the framework and that can be wired to other bundles.

org.osgi.framework.system.packages = \
javax.accessibility,\
javax.activity,\

org.xml.sax.helpers, \
special.parent.package

注意:指定 Bundle-RequiredExecutionEnvironment 的更简单解决方案仅适用于 JRE,不适用于 JDK...


这种配置需要成为 Equinox 框架的 config.ini 的一部分(参见 this example for Jetty 及其 config.ini)。
在您的情况下,它将在片段的 config.ini 中声明。

关于eclipse - 取决于 Eclipse 中 tools.jar (Sun JDK) 的 com.sun.javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1513083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com