如何在Windows上获取OpenJDK 11的tools.jar?

R Y*_*R Y 10 java hadoop maven tools.jar java-11

背景:我正在尝试使用此处的说明为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

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

Edw*_*uck 13

它已在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版本对你的成功至关重要,我会调查一下.

  • @nullpointer我不确定,但我愿意相信你.Hadoop有很多组件,虽然我确信HDFS和MapReduce可能不需要它,但我不打算对该套件进行全面的调查.我所知道的是你没有在JDK 1.11中获得tools.jar.因此,无论哪种方式,他都必须适应JDK 1.8.当然,如果你认为Hadoop不需要它,那么一定要继续在1.11上运行Hadoop,并告诉我你是如何解决tools.jar的.我会感兴趣的. (2认同)
  • @nullpointer 解决这个问题是从寻找一个名为 tools.jar 的文件的软件中删除假设,而是依靠 JVM 中现有的 JAR 文件来提供所需的功能。正如他告诉我的那样,无论他使用什么,他都在使用“hadoop”,他自己将其识别为“hadoop”,他应该调查一下他所谓的“hadoop”。如果您认为可以在删除后修补 JDK 以使其具有 tools.jar,那么您可以。这不是一个可支持的解决方案,因为您必须部署 JVM/JDK 的分叉版本(并且不能将其称为 Java)。 (2认同)