在java项目的pom.xml中,我丢失了工件jdk.tools:jdk.tools:jar:1.6错误

Jef*_*eff 15 java maven

我想我知道如何解决问题,除了:我不知道pom中特定版本的引用位置(我没有明确看到),我看到的解决方案是添加这个依赖:

<dependency>
   <groupId>com.sun</groupId>
   <artifactId>tools</artifactId>
   <version>1.6</version>
   <scope>system</scope>
   <systemPath>C:\Program Files\Java\jdk1.6.0_29\lib\tools.jar</systemPath>
 </dependency>
Run Code Online (Sandbox Code Playgroud)

但我想使用com.oracle,Windows上的jdk目录是jdk1.8.

那么有没有办法让pom"想要"我在机器上实际拥有的工具版本?

Cry*_*ark 35

我终于以正确的方式解决了这个问题.

当使用JRE而不是JDK启动eclipse时会发生这种情况,而tools.jar不是在JRE中.根据该断言,尝试安装JDK.如果已经安装,请检查您Path是否拥有JDK路径而不是JRE路径.

注意,最新版本的java似乎添加在Path以下目录中:C:\ProgramData\Oracle\Java\javapath.它包含可链接到JRE的快捷方式.您将要删除它并添加到JDK bin文件夹的链接.(例如C:\Program Files\Java\jdk1.8.0_66\bin)

请注意,您可能需要重新启动计算机Path才能进行eclipse启动的更改(我真的不明白为什么我必须这样做,但我做了).

另请注意,Java更新可能会重新添加javapath到PATH中.因此,您可能不希望使用自动更新,而是在安装后手动更新JDK并调整路径.它有点沉重,但做的工作.


Vik*_*ukh 15

对于任何在将来偶然发现此问题的人,请继续阅读以获得更优雅的解决方案:

原因

此问题出现在以下两种情况之一:

  1. 您没有安装和配置JDK; 要么

  2. 您已安装JDK和JRE,并且JRE优先于JDK路径.

正如"现实世界中的Hadoop"团队此链接中所解释的那样,您只需要tools.jarpom.xml文件中添加依赖项.

<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.7.0_05</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果错误仍然存​​在,那么只需将路径更改为tools.jar绝对路径,如下所示:

<systemPath>C:/Program Files/Java/jdk1.8.0_65/lib/tools.jar</systemPath>
Run Code Online (Sandbox Code Playgroud)