14

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

容器“Maven Dependencies”引用了不存在的库C:\Users\sejohnson\.m2\repository\com\sun\tools\1.6\tools-1.6.jar

4

12 回答 12

16

tools-xyzjar 应该由您的 JDK 提供。

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

例如:

-vm
C:\Program Files\Java\jdk1.6.0_26\bin\javaw

之后的新行-vm至关重要。

它应该在上面

-vmargs

另请参阅Eclipse Maven 插件配置问题

于 2011-10-19T04:26:44.333 回答
13

我遇到了完全相同的问题,最终将以下依赖项添加到 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

于 2013-03-25T15:27:50.917 回答
5

可能是您的 Eclipse 默认使用您的 32 位版本的 jre。如果您将 JAVA_HOME 设置为 C:\Program Files\Java\jdk1.6.0_21\bin 并运行 32 位版本的 eclipse,您最终将使用 C:\Program Files (x86)\Java\ jre6\bin。

修复 jdk 问题后,您需要在快捷方式的末尾传递它 -vm "C:\Program Files (x86)\Java\jdk1.6.0_31\bin"

或者修复你的 JAVA_HOME

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

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

于 2012-04-18T04:59:38.203 回答
1

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

于 2011-08-27T20:58:59.023 回答
1

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

如果这不适合您,请尝试更改依赖项,如 Maven常见问题解答中所述。

于 2011-08-29T14:34:47.730 回答
1

除了上述所有内容之外,这可能意味着诊断问题并最终提供适当解决方案的不同步骤,我首先检查命令行(意思是在 Eclipse 运行时之外)。从命令行执行简单的“mvn clean install”将为您提供以下信息:

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

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

于 2013-01-21T16:37:32.687 回答
1

我遇到了同样的问题,结果发现我的 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.tools jar 的依赖项,然后像我上面所做的那样排除。这应该可以解决您的问题。

于 2015-06-10T23:49:46.967 回答
0

遇到同样的问题,我不得不在eclipse中手动添加tools.jar:Preferences -> Java -> Installed JREs -> Select jre -> Edit -> Add External JARs -> Find and select tools.jar -> Finish。现在它起作用了。

于 2015-02-19T12:36:34.617 回答
0

从 maven 手动删除工件:

  1. 转到 pom.xml 的“依赖层次结构”选项卡
  2. 过滤 jdk.tools eg: (jdk.tools:1.6 [system])
  3. 右键单击 jdk.tools 并单击“排除 Maven 工件”

错误将得到解决。

于 2022-02-28T10:20:41.573 回答
0

回声@Gopal Ramakrishnan。我在 env 路径(Windows 操作系统)中遇到了同样的问题。它有“C:\ProgramData\Oracle\Java\javapath”,其中有 java.exe,因此在启动 eclipse 时会影响实际的 jdk 路径。只需删除即可解决问题。我很确定“C:\ProgramData\Oracle\Java\javapath”是由oracle“sql developer”悄悄添加的......

于 2017-07-11T02:51:41.783 回答
0

Here is another option if you are having this build problem. I had the same build problem and i tried all of the above suggestions and the problem was still there. Then i noticed that my system path had the following "C:\ProgramData\Oracle\Java\javapath" as the first item.

I am not sure which program installed it. And when i checked the folder it only had some links ( short cuts). I removed this from the system path and the build error was resolved. Hope this helps someone else in the same situation.

于 2016-05-15T17:46:44.630 回答
0

就我而言,事实证明我在 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实际上是因为这个原因不存在的

于 2018-02-06T01:26:27.137 回答