【问题标题】:How do I configure Eclipse and Maven to detect jdk.tools?如何配置 Eclipse 和 Maven 来检测 jdk.tools?
【发布时间】:2013-02-01 15:49:14
【问题描述】:

我在 Eclipse 中有一个 maven 项目,我在其中使用了一些 hadoop 库(hadoop-common、hadoop-auth、hadoop-hdfs),这些库引入了对 jdk.tools 的依赖。当我在另一台机器上检查这个项目时,它工作正常,但在我的 pom.xml 上抱怨“缺少工件 jdk.tools:jdk:tools:jar:1.6”。我可以通过手动添加依赖项并在本地驱动器上指定文件(例如“${JAVA_HOME}/../lib/tools.jar”)来解决此问题,但我想了解它为什么在一台计算机上而不是在一台计算机上工作另一个 - 我假设我的设置有问题?

我尝试了以下方法:

通过将“-vm C:\Program Files\Java\jdk1.6.0_25\bin\javaw.exe”添加到我的 eclipse.ini 文件中,确保 Eclipse 在 JDK 中运行。 在 Eclipse 首选项 Java -> Installed JREs 下列出的唯一 JRE 是相同的 JDK。 尝试在 Eclipse 首选项 Maven 中切换 maven 版本 -> 在“Embedded (3.0.4)”、“External (3.0.4)”和“External (2.2.1)”之间安装

也许我需要在我的 maven settings.xml 文件中添加/更改一些内容?

任何建议将不胜感激!

仅供参考,我使用的是 Eclipse Java EE Juno SR1 和 M2E 1.2.0。

【问题讨论】:

    标签: eclipse m2eclipse tools.jar


    【解决方案1】:

    JAVA_HOME 应该指向安装 java 的文件夹 在 settings.xml 文件中确保你有 JAVA_HOME 属性并且它指向正确的文件夹

    ${JAVA_HOME}/../lib/tools.jar 不正确。它应该是 ${JAVA_HOME}/lib/tools.jar,因为 tools.jar 在 /lib 文件夹下,而 /lib 文件夹直接在 ${JAVA_HOME} 文件夹下

    【讨论】:

    • "${JAVA_HOME}/../lib/tools.jar" 的路径方案似乎已经被一些项目编码,至少对于 linux (example)。我猜他们假设你有 JAVA_HOME 指向内部 JRE?
    【解决方案2】:

    我还在 eclipse.ini 文件中添加了以下内容:

    -vm
    ${JAVA_HOME}/bin
    

    这似乎解决了我的问题。

    注意:我正在运行 Eclipse 4.3 (Kepler)。

    【讨论】:

    • 比修改 pom.xml 更好的修复!如果使用 64 位 Eclipse(或 32 和 32),请务必将 -vm 放在 -vmargs 命令之前,并使用 64 位 JVM 路径。您还必须指定 java.exe -- wiki.eclipse.org/Eclipse.ini。在 Luna 中测试。
    【解决方案3】:

    似乎有三个选项。前两个确保首先找到的 java 是 JDK 的 java,它们导致 eclipse 正确地将系统依赖项转换为 JDK 下的 jar。最后一种方法可以不要求每个用户通过特殊方式运行 eclipse,但如果您的开发环境与生产环境不是 100% 同步,则可能会产生影响。如果您希望 jdk.tools 1.6 存在,但您使用 1.7 或 1.8 进行了测试,您可能会感到惊讶。

    • 通过 eclipse.ini

    --launcher.appendVmargs -vm
    c:/code/Java/jdk1.8.0_40/jre/bin/server/jvm.dll -vmargs -Dosgi.requiredJavaVersion=1.6

    • 通过路径

    set PATH=PATH-TO-JDK\bin;%PATH% PATH-TO-ECLIPSE\eclipse.exe

    • 通过 pom

    add tools.jar as jdk.tools:jdk.tools:<JDK version> to your local or private shared repo (nexus/artefactory etc) add dependency to your project

    【讨论】:

      猜你喜欢
      • 2012-03-14
      • 2010-11-08
      • 1970-01-01
      • 2014-04-24
      • 2016-07-06
      • 2012-02-13
      • 2019-03-25
      • 1970-01-01
      相关资源
      最近更新 更多