Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Windows上获取适用于OpenJDK 11的tools.jar?_Java_Maven_Hadoop_Java 11_Tools.jar - Fatal编程技术网

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

Java 如何在Windows上获取适用于OpenJDK 11的tools.jar?,java,maven,hadoop,java-11,tools.jar,Java,Maven,Hadoop,Java 11,Tools.jar,背景:我正在尝试使用找到的指令为Windows构建Hadoop。我在运行mvn软件包时遇到了以下问题: 无法解析project org.apache的依赖项。hadoop:hadoop注释:jar:2.5.0-SNAPSHOT:找不到工件jdk.tools:jdk.tools:jar:1.6位于指定路径C:\Program Files\Java\jdk-11.0.1\..\lib\tools.jar 我意识到OpenJDK 11的Windows版本中不存在tools.jar。我是否也需要从源代码

背景:我正在尝试使用找到的指令为Windows构建Hadoop。我在运行
mvn软件包时遇到了以下问题:

无法解析project org.apache的依赖项。hadoop:hadoop注释:jar:2.5.0-SNAPSHOT:找不到工件jdk.tools:jdk.tools:jar:1.6位于指定路径C:\Program Files\Java\jdk-11.0.1\..\lib\tools.jar


我意识到OpenJDK 11的Windows版本中不存在
tools.jar
。我是否也需要从源代码构建这个?如何获得OpenJDK 11的
tools.jar
Maven人工制品?

它在JDK 9中被删除

JEP220删除了众所周知且经常引用的JARs 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版本对您的成功至关重要,我将对此进行研究。

无论您在寻找什么工具。jar“!!你能说明一种方法来找出它到底是什么吗?ApacheHadoop正在寻找tools.jar。您使用的JVM是在您的Apache Hadoop版本最初发布之后发布的,即使它之后有维护(没有新功能)版本。如果没有人重写旧软件,就无法让它与新模式匹配。您的选择很可能是将ApacheHadoop升级到3.1.1(希望它足够新,可以支持JDK11),或者安装并使用Java8。我怀疑。。。。希望这足够新,可以支持JDK 11,但很抱歉,这没有回答问题question@nullpointer我不确定,但我愿意相信你。Hadoop有很多组件,虽然我确信HDFS和MapReduce可能不需要它,但我不打算对该套件进行全面调查。我只知道JDK1.11中没有tools.jar。所以,不管怎样,他都必须适应JDK1.8。当然,如果您认为Hadoop不需要它,那么一定要继续在1.11上运行Hadoop,并告诉我如何解析tools.jar。我很感兴趣。解决这个问题的方法是从软件中删除一些假设,寻找一个名为tools.jar的文件,而不是依赖JVM中已经存在的jar文件来提供所需的功能。正如他告诉我的,无论他在用什么,他都在使用“hadoop”,他自认为是“hadoop”,他应该研究一下他称之为“hadoop”的东西。如果您认为可以在JDK被删除后对其进行修补以获得tools.jar,那么您可以。这不是一个可支持的解决方案,因为您必须部署JVM/JDK的分叉版本(不能称之为Java)。@nullpointer我在沙盒中确认Hadoop 2.9.2将与JDK 1.8一起使用,我正在使用OpenJDK版本。也就是说,JEP220的改进可能会阻止任何Hadoop 2.x系列在Java 9上运行。跟踪进度的一个更好的链接是,因为他们的目标是在短期内与LTS版本兼容,而不是9和10。基本上,
tools.jar
上的所有DEP现在默认都在jdk类路径上,那么您就不需要导入它了。问题是hadoop希望导入jar