缺少的工具-1.6.jar与Eclipse和Maven



我正试图在Eclipse中使用Maven运行一个项目,但我在下面得到这个错误。tools.jar在JDK的lib文件夹中,但tools-1.6.jar似乎不存在于我的计算机上。我正在使用JDK 1.7,我的JAVA_HOME指向该文件夹(我的eclipse.ini),有人知道我可以在哪里得到这个文件,或者我可能做错了什么?

容器'Maven Dependencies'引用了不存在的库C:Userssejohnson.m2repositorycomsuntools1.6tools-1.6.jar

tools-x.y.z.jar应该由JDK提供。

通过在eclipse.ini中添加-vm选项来确保eclipse是由JDK而不是JRE运行的。

例如:

-vm
C:Program FilesJavajdk1.6.0_26binjavaw

-vm后面的新行是至关重要的。

应该在

的正上方
-vmargs

请参见Eclipse Maven Plugin Configuration Problem

我遇到了完全相同的问题,并最终将以下依赖项添加到pom文件中:

    <dependency>
        <groupId>jdk.tools</groupId>
        <artifactId>jdk.tools</artifactId>
        <version>${java.version}</version>
        <scope>system</scope>
        <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
    </dependency>

这解决了问题,并使tools.jar可用于QueryDSL插件在我的项目。希望这对你有所帮助。注意,请确保使用JDK版本而不是JRE。

编辑:最近注意到,当我迁移到新的开发平台时,问题再次出现,在我的情况下是Ubuntu 12.10。修复方法是将${JAVA_HOME}/bin添加到$PATH

这可能是您的eclipse默认使用32位版本的jre。如果您将JAVA_HOME设置为C:Program FilesJava jdk1.6.0_21bin,并且您运行的是32位版本的eclipse,那么最终将使用类似C:Program Files (x86)Javajre6 bin的内容。

一旦你修复了你的JDK问题您需要在快捷方式的末尾传递它vm"C: Program Files Java (x86) jdk1.6.0_31 bin "

或者修复JAVA_HOME

其他建议是确保您的eclipse使用的是jdk而不是jrehttp://gamefromscratch.com/post/2011/11/15/Telling-Eclipse-to-use-the-JDK-instead-of-JRE.aspx

如果您搜索tools.jar或运行另一个有此常见maven依赖问题的项目,您将找到其他帖子。

您可以检查您的pom.xml中的工具依赖关系吗?mvnrepository.com是一个很好的源代码,最后你的项目在eclipse之外编译吗?mvn clean compile工作在dos盒或shell?如果是这样,也许您只需要用mvn eclipse:eclipse重新生成eclipse项目文件,然后在eclipse

中刷新您的项目。任何公共存储库都不提供tools.jar(据我所知)。如果您的pom.xml引用本地存储库中的文件,则必须自己安装它。您正在使用的pom.xml显然期望有人在可访问的Maven存储库(例如,到公司中央Maven存储库管理器,如Nexus)中创建/安装tools-1.6.jar。

如果不适合您,请尝试更改依赖项,就像Maven faq中解释的那样。

除了上述所有步骤(这可能意味着诊断问题并最终提供适当的解决方案的不同步骤)之外,我首先检入命令行(也就是说,在Eclipse运行时之外)。从命令行执行一个简单的"mvn clean install"会得到以下结果:

  1. 确定你是否正确设置了java可执行文件(因为它们是所有java应用程序使用的默认设置,当然包括eclipse,
  2. 确定您的maven版本通过JDK配置充分解决了tools*.jar需求

使用这两个事实可以排除Java安装和Maven安装级别的问题。然后,您可以继续在命令行中使用与Eclipse相同的设置(JAVA JDK HOME、MAVEN HOME),正如上面的其他答案(特别是brimstedt和josh的答案)所详细解释的那样。

我遇到了同样的问题,结果是我的POM文件中的一个依赖项正在传递地将依赖项添加到jdk中。我不需要的tools jar(并且导致了Eclipse Maven插件的问题)。我的解决方案是将它从有问题的依赖中排除,像这样:

<dependency>
  <groupId>it.unimi.di</groupId>
  <artifactId>mg4j-big</artifactId>
  <version>${mg4j-big.version}</version>
  <exclusions>
    <exclusion>
      <groupId>jdk.tools</groupId>
      <artifactId>jdk.tools</artifactId>
    </exclusion>
  </exclusions>
</dependency>

尝试查找正在传递导入jdk的依赖项。就像我上面所做的那样。这应该能解决你的问题。

遇到同样的问题,我不得不在eclipse中手动添加tools.jar:首选项-> Java ->已安装JREs ->选择jre ->编辑->添加外部jar ->查找并选择tools.jar ->完成。

如果您遇到这个构建问题,这里有另一个选择。我有同样的构建问题,我尝试了上面所有的建议,问题仍然存在。然后我注意到我的系统路径有以下"C:ProgramDataOracleJavajavapath"作为第一项。

我不确定是哪个程序安装的。当我检查文件夹时,它只有一些链接(快捷键)。我将其从系统路径中删除,并且解决了构建错误。希望这能帮助到有同样情况的人。

回复@Gopal Ramakrishnan。我有同样的问题在环境路径(windows操作系统)。它有"C:ProgramDataOracleJavajavapath",其中有Java .exe,因此在启动eclipse时影响了实际的jdk路径。简单地删除,解决了问题。我很确定"C:ProgramDataOracleJavajavapath"是由Oracle"sql developer"悄悄添加的…

在我的例子中,我在pom.xml

中有这个依赖项
<dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.6.0</version>
            <scope>system</scope>
            <systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>

但是JAVA_HOME在Eclipse启动时设置为JRE而不是JDK

因此tools.jar实际上并不存在

手动从maven中移除工件:

  1. 进入"依赖层次";xml
  2. 选项卡
  3. 过滤jdk。(jdk.tools:1.6 [system])
  4. 右键单击jdk。工具,点击"排除Maven工件"

错误将被解决

相关内容

  • 没有找到相关文章

最新更新