构建错误:缺少工件com.sun:tools:jar:1.6

尝试构建PlayN示例项目,我得到:

Missing artifact com.sun:tools:jar:1.6 pom.xml /playn-cute line 6 Maven Dependency Problem 

在每个pom.xml文件上。 我该如何解决?

编辑

我已将配置文件节点添加到pom.xml ,但错误仍然存​​在。 我已经检查过tools.jar实际上是存在的,但它没有。 所以我已经将tools.jar添加到了lib文件夹中。 仍然存在错误。

完整的pom.xml:

   4.0.0  com.googlecode.playn playn-project 1.0.1  playn-cute PlayN Cute Metaproject 1.0-SNAPSHOT pom  1.0.1   core java html <!-- flash --> android    default-tools.jar   java.vendor Sun Microsystems Inc.     com.sun tools 1.6 system ${java.home}/../lib/tools.jar      

此工件始终作为“系统”依赖项处理。 它永远不会存储在回购中。

有关详细信息,请参阅http://maven.apache.org/general.html#tools-jar-dependency 。

如果没有工具jar,并且你不在Mac上,那么当你的需求是JDK时,你正试图使用​​JRE。 您无法通过复制文件将其中一个转换为另一个。

我在Windows 7中使用Eclipse时遇到了同样的问题,即使我在Eclipse设置中从JRE列表中删除了JRE,并且只是在那里使用了JDK。 你的问题没有说明你是使用命令行Maven还是Eclipse,所以我想我会在Eclipse中分享为我修复的内容。

我最不得不做的是修改命令行以获取我用来启动Eclipse的快捷方式,以便像这样添加-vm参数:

 -vm "T:\Program Files\Java\jdk1.6.0_26\bin" 

当然,您可以将其调整为指向JDK安装的bin目录。 这样做是因为Eclipse本身使用JDK而不是JRE运行,然后它能够​​正确地找到tools.jar

我在Ubuntu上测试。 我对Java工具不是很熟悉。 安装JDK为我解决了这个问题。

 aptitude install openjdk-6-jdk 

您不需要将依赖项添加到POM。 我在eclipse中遇到了这个问题,因为eclipse是在JRE中运行的,而不是JDK。

在这里看到同样的问题: 缺少工件com.sun:tools:jar

通过指定vm eclipse使用解决。 另外,检查eclipse项目的构建路径是使用JDK,而不是JRE。

在构建路径上有一个JDK,并且在eclipse INI中明确地设置JDK仍然不起作用,但是如果路径上的java是jre而不是jdk(windows路径,或linux / mac等效)。

从命令行运行此命令以查看路径上的java: 如何在Windows机器上找到JDK的安装位置?

如果是JRE,则应将其更改为JDK并重新启动IDE。

一些可以帮助你的指针:

  1. 检查tools.jar是否存在于pom.xml中的repo url中。
  2. validationpom.xml中的依赖项。 这可能是不正确的。 我在http://search.maven.org/#browse%7C96611365找不到任何jar工件。

谢谢。

您可能会在eclipse IDE上看到此错误的原因有很多

  1. Eclipse指向JRE而不是JDK
  2. JDK库不包含tools.jar

为此,您可能希望通过Preferences – > Java – > Installed JRE – >添加tools.jar(选择JDK,编辑并添加外部jar – >导航到tools.jar)

  1. 其他原因可能是这样 – >项目的父maven存储库在其他一些工件下有一个同名的jar。

您需要在eclipse中找到tools.jar – >依赖Heirarchy视图的pom.xml,一旦找到了jar,就可以在那里添加一个排除

喜欢 – >

 com.parent.project parent-project-dependencies-pom ${dependencies.version}   com.sun tools   

我也有这个问题,虽然java_path没问题,但问题仍然存在。 对我有用的修复是:

运行此命令( 其中Dfile指向您的tools.jar ):

 mvn install:install-file -DgroupId=com.sun -DartifactId=tools -Dversion=1.4.2 -Dpackaging=jar -Dfile="C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar" 

然后在主pom.xml中添加对依赖项的引用:

  com.sun tools 1.4.2  

这就是我解决它的方式。 请将以下行粘贴到您的eclipse.ini文件中。

-vm路径直到java.exe(如下图所示)

-vm C:/ Program Files / Java / jdk1.7.0_60 / bin / java

希望能帮助到你。

这就是我使用Jboss Developer Studio 8.1.10解决这个问题的方法:

添加到位于以下位置的jbdevstudio.ini文件: D:\Users\bertrand\jbdevstudio\studio这两行(在-vmargs之前):

 -vm C:\Program Files\Java\jdk1.7.0_79\bin 

我有同样的问题,这是因为路径中有多个tools.jar文件。

但问题是工作空间pom依赖性。 我开始知道这一点,因为我在同一次日食中的其他工作空间工作正常。

我采取的步骤来调查和解决:

1)打开项目pom文件

2)转到pom中的Dependency Hierarchies部分

3)在右上角filter文本框中,输入名称tools.jar

4)这将显示tools.jar文件的依赖关系层次结构。

5)在右侧Resolved Section ,选择tools.jar文件并右键单击jar文件。

6)选择排除文件。

然后重建项目。

Apple Developer文章指出:

tools.jar不存在。 通常位于此处的类将包含在classes.jar中。 依赖于tools.jar存在的脚本需要相应地重写。

我不得不改变你的想法:

 ${java.home}/../lib/tools.jar 

到显式路径,使用JDK而不是像Bmargulies那样的JRE说:

  C:/Program Files/Java/jdk1.6.0_24/lib/tools.jar 

希望有所帮助。

在pom.xml文件中添加此依赖项。

属性中,您必须编写jdk lib路径。

  com.sun tools 1.4.2 system C:/Program Files/Java/jdk1.6.0_30/lib/tools.jar