尝试构建PlayN示例项目:
Missing artifact com.sun:tools:jar:1.6 pom.xml /playn-cute line 6 Maven Dependency Problem
在每个pom.xml
文件上。
我该如何解决?
修改:
我已将profiles node添加到pom.xml
,但错误仍然存在。我已经检查过tools.jar
实际上是否存在,但事实并非如此。所以我在lib文件夹中添加了tools.jar
。仍然存在错误。
完整的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.googlecode.playn</groupId>
<artifactId>playn-project</artifactId>
<version>1.0.1</version>
</parent>
<artifactId>playn-cute</artifactId>
<name>PlayN Cute Metaproject</name>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<playn.version>1.0.1</playn.version>
</properties>
<modules>
<module>core</module>
<module>java</module>
<module>html</module>
<!-- <module>flash</module> -->
<module>android</module>
</modules>
<profiles>
<profile>
<id>default-tools.jar</id>
<activation>
<property>
<name>java.vendor</name>
<value>Sun Microsystems Inc.</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.6</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
答案 0 :(得分:20)
此工件始终作为“系统”依赖项处理。它永远不会存储在回购中。
有关详细信息,请参阅http://maven.apache.org/general.html#tools-jar-dependency。
如果没有工具jar,并且您不在Mac上,则在需求是JDK时尝试使用JRE。您无法通过复制文件将其中一个转换为另一个。
答案 1 :(得分:8)
在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
。
答案 2 :(得分:4)
您可能会在eclipse IDE上看到此错误的原因有很多
为此,您可能希望自己通过首选项添加tools.jar - &gt; Java - &gt;已安装的JRE - &gt; (选择JDK,编辑和添加外部jar - &gt;导航到tools.jar)
您需要找到tools.jar到 - &gt; eclipse中pom.xml的依赖关系Heirarchy视图,一旦你找到jar就可以在那里添加一个排除
喜欢 - &gt;
<groupId>com.parent.project</groupId>
<artifactId>parent-project-dependencies-pom</artifactId>
<version>${dependencies.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
</exclusion>
</exclusions>
答案 3 :(得分:3)
我在Ubuntu上测试。我对Java工具不太熟悉。安装JDK解决了这个问题。
aptitude install openjdk-6-jdk
答案 4 :(得分:2)
我也有这个问题,虽然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中添加对依赖项的引用:
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.4.2</version>
</dependency>
答案 5 :(得分:2)
您不需要将依赖项添加到POM中。我在eclipse中遇到了这个问题,这是因为eclipse在JRE中运行,而不是JDK。
在此处针对同一问题查看此问题:Missing artifact com.sun:tools:jar
通过指定vm eclipse使用来解决。另外,检查eclipse项目的构建路径是使用JDK,而不是JRE。
在构建路径上有一个JDK,并且在eclipse INI中明确地设置JDK仍然不起作用,但是如果路径上的java是jre而不是jdk(windows路径,或linux / mac等效)。
从命令行运行此命令以查看路径上的java:How do I find where JDK is installed on my windows machine?
如果是JRE,则应将其更改为JDK并重新启动IDE。
答案 6 :(得分:1)
可以帮助您的一些指示:
感谢。
答案 7 :(得分:0)
这是我解决它的方式。 请将以下行粘贴到您的eclipse.ini文件中。
-vm 路径直到java.exe(如下所示)
-vm C:/ Program Files / Java / jdk1.7.0_60 / bin / java
希望它有所帮助。答案 8 :(得分:0)
这是我使用 Jboss Developer Studio 8.1.10 解决此问题的方法:
添加到位于jbdevstudio.ini
这两行(D:\Users\bertrand\jbdevstudio\studio
之前)的-vmargs
文件中:
-vm
C:\Program Files\Java\jdk1.7.0_79\bin
答案 9 :(得分:0)
我遇到了同样的问题,原因是路径中有多个tools.jar文件。
但问题是特定于工作空间pom依赖性。我开始知道这一点,因为我在同一次日食中的其他工作空间工作正常。
我采取的步骤调查&amp;解决:
1)打开项目pom文件
2)转到pom中的Dependency Hierarchies
部分
3)在右上角过滤器文本框中,输入名称tools.jar
4)这将显示tools.jar文件的依赖关系层次结构。
5)在右侧Resolved Section
,选择tools.jar文件并右键单击jar文件。
6)选择排除文件。
然后重建项目。
答案 10 :(得分:0)
对我来说,问题是我安装了JRE,但没有安装JDK。我知道这很奇怪,因为JRE应该起作用,但事实并非如此。使用相同版本的JDK,效果很好。 这是一个Linux系统,没有IDE。
答案 11 :(得分:0)
我通过手动将jdk安装的/ lib上的tools.jar添加到Eclipse JRE来解决了这个问题
窗口>首选项>已安装的JRE>编辑>添加外部jar>选择要添加的tools.jar
答案 12 :(得分:0)
答案 13 :(得分:-1)
tools.jar不存在。通常位于此处的类包含在classes.jar中。依赖于tools.jar存在的脚本需要相应地重写。
答案 14 :(得分:-2)
我必须改变你所拥有的东西:
<systemPath>${java.home}/../lib/tools.jar</systemPath>
到显式路径,使用JDK而不是像Bmargulies那样的JRE说:
<systemPath>C:/Program Files/Java/jdk1.6.0_24/lib/tools.jar</systemPath>
希望有所帮助。
答案 15 :(得分:-2)
在pom.xml文件中添加此依赖项。
在<systemPath>
属性中,您必须编写jdk lib路径。
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.4.2</version>
<scope>system</scope>
<systemPath>C:/Program Files/Java/jdk1.6.0_30/lib/tools.jar</systemPath>
</dependency>