【问题标题】:Build error: missing artifact com.sun:tools:jar:1.6构建错误:缺少工件 com.sun:tools:jar:1.6
【发布时间】:2012-01-31 10:22:33
【问题描述】:

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

【问题讨论】:

  • 您使用的是什么操作系统? javac 命令的确切路径是什么,安装 tools.jar 的确切路径是什么?您是否安装了 Java SDK 或仅安装了 Java JRE?听起来你有后者,但你需要前者。
  • 检查我的答案或多或少与issue 相同:我认为这与用于 tools.jar 的路径有关
  • 对我有帮助的快速解决方案是将 JRE 指向 JDK 文件夹中可用的那个。
  • 这能回答你的问题吗? Missing artifact com.sun:tools:jar

标签: java maven playn


【解决方案1】:

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

详情请见https://web.archive.org/web/20151031071007/http://maven.apache.org/general.html#tools-jar-dependency

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

【讨论】:

  • 谢谢 bmargulies。请查看我的问题编辑,我已经添加了进一步的进展。
  • 好吧,我使用的是 Mac,但它如何让我的生活更美好?
  • 您注意到上面的日期了吗? Mac JDK 过去的形状不同。
  • 链接已失效 :(
  • @turbanoff 链接已修复
【解决方案2】:

我在 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

【讨论】:

  • 这在 Eclipse 的 Maven 项目中对我有用,但为了获得完整的效果,我必须执行 Maven -> 从上下文菜单中更新项目
【解决方案3】:

您可能会在 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>

【讨论】:

    【解决方案4】:

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

    aptitude install openjdk-6-jdk
    

    【讨论】:

      【解决方案5】:

      您不需要将依赖项添加到您的 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】:

        我也遇到了这个问题,虽然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>
        

        【讨论】:

          【解决方案7】:

          一些可以帮助你的建议:

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

          谢谢。

          【讨论】:

            【解决方案8】:

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

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

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

            希望对你有帮助。

            【讨论】:

              【解决方案9】:

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

              添加到您的jbdevstudio.ini 文件中:D:\Users\bertrand\jbdevstudio\studio 这两行(-vmargs 之前):

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

              【讨论】:

                【解决方案10】:

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

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

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

                1) 打开项目pom文件

                2) 转到 pom 中的 Dependency Hierarchies 部分

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

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

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

                6) 选择排除文件。

                然后重建项目。

                【讨论】:

                  【解决方案11】:

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

                  【讨论】:

                    【解决方案12】:

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

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

                    【讨论】:

                      【解决方案13】:

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

                      如果工具.jar 错误未出现在 Eclipse 中,请检查您的问题部分。

                      【讨论】:

                        【解决方案14】:

                        Apple Developer article 声明:

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

                        【讨论】:

                          【解决方案15】:

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

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

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

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

                          希望对您有所帮助。

                          【讨论】:

                            【解决方案16】:

                            在 pom.xml 文件中添加这个依赖。

                            &lt;systemPath&gt; 属性中,您必须编写您的 jdk 库路径。

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

                            【讨论】:

                              猜你喜欢
                              • 2012-01-12
                              • 2013-02-08
                              • 2012-06-22
                              • 2020-03-23
                              • 2015-05-25
                              • 2014-12-12
                              • 1970-01-01
                              • 2016-08-31
                              • 2017-08-19
                              相关资源
                              最近更新 更多