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

沃尔克·斯托尔兹:

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

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

您是否知道有任何解决方法,仅通过使用Eclipse的机载机制来使依赖关系对我们插件的用户显而易见Import-Package与com.sun.jdi不同,该包似乎对于清单文件甚至无效

(作为一种解决方法,当前我们只能在插件激活时警告该库丢失。)

VonC:

由于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中声明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

哪里有“sun.misc.Perf”现在移动Java中10 tool.jar被“分解”

Java 9中的com.sun.javafx.collections

如何使内嵌标签(需要com.sun)更加跨平台?是否有非Oracle /跨平台Javadoc解析器?

Maven:缺少POM.xml中的工件com.sun:tools:jar:1.6.0编译时异常

Javadoc生成失败:ClassCastException:com.sun.tools.javadoc.ClassDocImpl无法转换为com.sun.javadoc.AnnotationTypeDoc

sun.security.x509.CertAndKeyGen和sun.security.pkcs.PKCS10-在JDK8中丢失。实施建议

缺少工件com.sun.jdmk:jmxtools:jar:1.2.1

缺少库com.sun.tools.attach

生成错误:缺少工件com.sun:tools:jar:1.6

JDK7中没有com.sun.tools.javac

如何在Eclipse中导入com.sun.javadoc。*?

为什么HashMap containsKey比在Sun JDK中慢?(sun-jdk-1.6.0.17)

在JDK中,哪里可以获取以`sun`开头的软件包?

Maven项目所需的sun.javadoc jar

Sun JDK 6.0.24中的java.util.regex中的错误?

导入com.sun.javadoc无法在Eclipse中解析

ThreadLocal的深思(或者:sun的javadoc错误吗?)

错误:jdk-13.0.2中不存在包com.sun.javadoc

使用com.sun.tools.javadoc.Main.execute在jdk 11中运行Doclet的替代方法是什么?

在Jboss中找不到com.sun.jdi

“ com.sun。*”和“ sun。*”包中的类不应用于Jersey客户的Sonar问题

如何在Gradle JAR类路径构建脚本中包含com.sun.tools JAR并与IDE同步?

com.sun.jdi.InvocationException发生了JDK8中的调用方法

在date_sun_info()中,什么是公交

com.sun.jdi.InterfaceType中缺少invokeMethod

SonarQube规则不应使用“ com.sun。*”和“ sun。*”包中的类

在JDK中找不到Mule的Maven安装错误com.sun.tools.jar

在Oracle / Sun GridEngine中执行bash脚本

查找tools.jar中的Sun-Java-6不正确的classpath / java.home问题