【问题标题】:How to get tools.jar for OpenJDK 11 on Windows?如何在 Windows 上获取 OpenJDK 11 的 tools.jar?
【发布时间】:2019-05-11 11:18:24
【问题描述】:

背景:我正在尝试使用 here 找到的说明为 Windows 构建 Hadoop。我有OpenJDK 11 并在运行mvn package 时遇到了以下问题:

Could not resolve dependencies for project org.apache.hadoop:hadoop-annotations:jar:2.5.0-SNAPSHOT: Could not find artifact jdk.tools:jdk.tools:jar:1.6 at specified path C:\Program Files\Java\jdk-11.0.1\..\lib\tools.jar

我意识到在 OpenJDK 11 的 Windows 版本中不存在 tools.jar。我是否也必须从源代码构建它?如何获得 OpenJDK 11 的 tools.jar Maven artefact?

【问题讨论】:

  • @nullpointer 我已经在我的沙箱中确认 Hadoop 2.9.2 将与 JDK 1.8 一起使用,并且我正在使用 OpenJDK 版本。也就是说,JEP 220 的改进可能会阻止任何 Hadoop 2.x 系列在 Java 9 上运行。
  • 跟踪进度的更好链接是Hadoop and Java 9, 10, 11,因为他们的目标是在短期内兼容 LTS 版本而不是 9 和 10。
  • 基本上所有在tools.jar 上的dep 现在默认都在jdk 类路径上,那么你不需要导入它。问题是hadoop期望导入jar

标签: java maven hadoop java-11 tools.jar


【解决方案1】:

它在 JDK 9 中被删除。

JEP 220 删除了众所周知且经常引用的 JAR rt.jar 和 tools.jar。根据其描述,“以前存储在 lib/rt.jar、lib/tools.jar、lib/dt.jar 和各种其他内部 jar 文件中的类和资源文件现在将以更有效的格式存储在实现中—— lib 目录中的特定文件。

我建议您使用 Apache Hadoop 的更新版本。如果更新版本也不支持 Java 11,请将您的 Java 降级到 1.8。

比如目前稳定的Apache Hadoop是2.9.2版本,在安装说明中,特别提到了JDK 9之前的JDK。为了正确支持,我建议你使用OpenJDK 1.8

有一个 Hadoop 3.1.1,如果您发现 Java 版本对您的成功至关重要,我会调查一下。

【讨论】:

  • whatever was looking for tools.jar" !!你能说出一种方法来弄清楚它到底是什么吗?
  • Apache Hadoop 正在寻找 tools.jar。您使用的 JVM 是在您的 Apache Hadoop 版本最初发布之后发布的,即使它之后有维护(没有新功能)版本。如果没有人重写它,你不会让旧软件匹配新模式。您的选择是将 Apache Hadoop 升级到 3.1.1(并希望它足够新以支持 JDK 11)或安装和使用 Java 8。
  • Apache Hadoop 正在寻找 tools.jar。 我对此表示怀疑.... 希望它足够新以支持 JDK 11,很抱歉这没有不回答问题
  • @nullpointer 我不确定,但我愿意相信你。 Hadoop 有大量组件,虽然我确信 HDFS 和 MapReduce 可能不需要它,但我不会对套件进行全面调查。我所知道的是,您没有在 JDK 1.11 中获得 tools.jar。因此,无论哪种方式,他都必须适应 JDK 1.8。当然,如果您认为 Hadoop 不需要它,那么请务必在 1.11 上继续运行 Hadoop,并告诉我您是如何解决 tools.jar 的。我会感兴趣的。
  • @nullpointer 解决这个问题的方法是消除软件寻找名为 tools.jar 的文件的假设,而是依赖 JVM 中已经存在的 JAR 文件来提供所需的功能。正如他告诉我的那样,无论他在使用什么,他都在使用“hadoop”,他自称是“hadoop”,他应该研究他所谓的“hadoop”。如果您认为可以在删除 JDK 后将其修补为拥有 tools.jar,那么您可以。这不是一个可支持的解决方案,因为您必须部署 JVM / JDK 的分叉版本(并且不能将其称为 Java)。
猜你喜欢
  • 2019-03-01
  • 2022-09-24
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 2022-06-29
相关资源
最近更新 更多