15

尝试构建我得到的 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:

<?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>
4

16 回答 16

22

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

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

如果没有工具 jar,并且您不在 Mac 上,那么当要求是 JDK 时,您正在尝试使用 JRE。您不能通过复制文件将一个转换为另一个。

于 2012-01-01T21:29:21.667 回答
9

在 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​​正确找到。

于 2012-01-18T17:08:42.970 回答
5

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

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

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

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

您需要通过 -> Eclipse 中 pom.xml 的 Dependency Heirarchy 视图找到 tools.jar,一旦找到该 jar,您就可以在其中添加排除项

喜欢->

<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>
于 2014-10-17T10:59:15.277 回答
3

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

aptitude install openjdk-6-jdk
于 2012-03-11T01:45:24.493 回答
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>
于 2013-04-24T11:15:07.107 回答
2

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

在此处查看此问题以了解相同的问题:缺少工件 com.sun:tools:jar

通过指定 vm eclipse 使用来解决。还要检查 Eclipse 项目的构建路径是否使用 JDK,而不是 JRE。

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

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

如果它是 JRE,您应该将其更改为 JDK 并重新启动您的 IDE。

于 2014-11-12T10:53:51.140 回答
1

一些可以帮助你的指针:

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

谢谢。

于 2012-01-01T18:02:16.783 回答
0

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

-vm 到 java.exe 的路径(如下图)

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

希望能帮助到你。

于 2014-10-01T04:51:03.983 回答
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
于 2015-10-14T09:57:21.703 回答
0

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

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

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

1)打开项目pom文件

2)转到Dependency Hierarchiespom中的部分

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

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

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

6) 选择排除文件。

然后重建项目。

于 2018-03-23T12:52:17.773 回答
0

对我来说,问题是我安装了 JRE 而不是 JDK。我知道这很奇怪,因为 JRE 应该可以工作,但事实并非如此。使用 JDK 相同的版本,它工作得很好。这是一个 linux 盒子,没有 IDE。

于 2019-03-06T23:17:59.103 回答
0

我通过手动将 jdk 安装的 /lib 上的 tools.jar 添加到 Eclipse JRE 解决了这个问题

Window > Preferences > Installed JREs > Edit > Add external jars > 选择 tools.jar 添加

于 2019-06-05T13:17:11.180 回答
0

如果 tools.jar 来自任何其他依赖项,请检查您的 pom.xml。如果不使用,要么从那里排除它,要么删除依赖项。

如果 Eclipse 中没有出现 tools.jar 错误,请检查您的问题部分。

在此处输入图像描述

于 2020-07-26T08:39:40.503 回答
-1

这篇Apple Developer 文章指出:

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

于 2012-07-12T19:01:30.537 回答
-2

我不得不改变你所拥有的:

<systemPath>${java.home}/../lib/tools.jar</systemPath>

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

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

希望有帮助。

于 2012-01-14T19:49:59.197 回答
-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> 
于 2013-07-12T07:08:37.350 回答