java - 如何在 Windows 上获取适用于 OpenJDK 11 的 tools.jar?

标签 java maven hadoop java-11 tools.jar

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

无法解析项目 org.apache.hadoop:hadoop-annotations:jar:2.5.0-SNAPSHOT 的依赖项:无法在指定路径 C: 处找到 Artifact jdk.tools:jdk.tools:jar:1.6\Program Files\Java\jdk-11.0.1\..\lib\tools.jar

我意识到 OpenJDK 11 的 Windows 构建中不存在 tools.jar。我是否也必须从源代码构建它?我如何获取适用于 OpenJDK 11 的 tools.jar Maven Artifact ?

最佳答案

它在 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之前的JDKs,为了得到适当的支持,建议使用OpenJDK 1.8

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

关于java - 如何在 Windows 上获取适用于 OpenJDK 11 的 tools.jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53707666/

相关文章:

hadoop - 将 pig 结果存储在文本文件中

c# - 在hadoop上运行我自己的应用程序而无需对mapreduce进行编码?

java - 为什么 Java 中的记录器很少有 System.out.println 有的 .toString()?

java - 使用 tomcat 服务器编辑已部署的应用程序

java - 在 Java/Android 中找出 UTF-8 字符串中的字符数

java - 如何使用Play框架下载commons.lang?

java - 如何去掉pom.xml下的红线?

java - 无法在集群上使用 java 类调用 spark 应用程序

java - GZIP解压代码抛出异常

java - DSL 选择中的 JOOQ 和 PostgreSQL 类型