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

时间:2012-01-01 17:03:54

标签: java maven playn

尝试构建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>

16 个答案:

答案 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上看到此错误的原因有很多

  1. Eclipse指向JRE而不是JDK
  2. JDK库不包含tools.jar
  3. 为此,您可能希望自己通过首选项添加tools.jar - &gt; Java - &gt;已安装的JRE - &gt; (选择JDK,编辑和添加外部jar - &gt;导航到tools.jar)

    1. 其他原因可能是这个 - &gt;项目的父maven存储库在其他一些工件下有一个同名的jar。
    2. 您需要找到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)

可以帮助您的一些指示:

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

答案 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)

检入pom.xml,是否tools.jar来自其他依赖项。从那里排除它,或者如果不使用它,删除依赖。

然后在“问题”部分中检查是否在eclipse中未出现tools.jar错误。

enter image description here

答案 13 :(得分:-1)

Apple Developer article个州:

  

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>