构建错误:缺少工件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。
一些可以帮助你的指针:
- 检查tools.jar是否存在于pom.xml中的repo url中。
- validationpom.xml中的依赖项。 这可能是不正确的。 我在http://search.maven.org/#browse%7C96611365找不到任何jar工件。
谢谢。
您可能会在eclipse IDE上看到此错误的原因有很多
- Eclipse指向JRE而不是JDK
- JDK库不包含tools.jar
为此,您可能希望通过Preferences – > Java – > Installed JRE – >添加tools.jar(选择JDK,编辑并添加外部jar – >导航到tools.jar)
- 其他原因可能是这样 – >项目的父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