【问题标题】:Maven unable to locate Javac Compiler - Unable to locate the Javac Compiler in:Maven 无法找到 Javac 编译器 - 无法在以下位置找到 Javac 编译器:
【发布时间】:2012-12-19 20:46:32
【问题描述】:

当我尝试在我的 gwt-maven Projekt 上进行 maven-install 时,我收到此错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project MyProject: Compilation failure
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Development\java jre7\..\lib\tools.jar
[ERROR] Please ensure you are using JDK 1.4 or above and
[ERROR] not a JRE (the com.sun.tools.javac.Main class is required).
[ERROR] In most cases you can change the location of your Java
[ERROR] installation by setting the JAVA_HOME environment variable.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

JAVA_HOME 已设置。当我运行cmd "echo %JAVA_HOME%" 时,它显示C:\Development\jdk7,这是正确的。 不知道他为什么要搜索C:\Development\java jre7.....

【问题讨论】:

  • 你在 mavenrc.bat 中设置了吗?在Windows上更改JAVA_HOME后是否重新启动了cmd exe?
  • 没有。我还没有在 mavenrc.bat 中进行设置。不,我没有重新启动,因为 JAVA_HOME 已经设置了......我不知道......很久以前 ^^
  • 也许尝试使用更新版本的 maven-compiler-plugin?
  • m2e 的路径名有空格问题,我相信。
  • 重新标记为 m2e。如果您使用开发环境信息更新您的问题,这将是更容易和更好的做法。干杯:)

标签: java maven m2e


【解决方案1】:

如果Jenkins出现此错误,则需要在Jenkins中设置JAVA_HOME的路径。

  1. 转到管理 Jenkins
  2. 全局配置工具 -> JDK
  3. 设置JAVA_HOME的路径:

【讨论】:

    【解决方案2】:

    对于 eclipse 用户:
    方式 1:

    1. 右键单击 Eclipse 项目 -> 转到属性
    2. Java 构建路径 -> 库
    3. 点击JRE System Library -> 点击右侧的Edit按钮 -> 点击Installed JRE
    4. 编辑 JRE -> 设置 JRE Home = JAVA_HOME(在我的情况下 JAVA_HOME 是 C:\Program Files\Java\jdk1.7.0_45)

    方式 2:

    1. 转到窗口 -> 首选项 -> Java -> 已安装的 JRE
    2. 将现有 JRE 位置编辑为:设置 JRE Home = JAVA_HOME 或 JAVA_HOME\jre(在我的情况下,路径是 C:\Program Files\Java\jdk1.7.0_45 或 C:\Program Files\Java\jdk1.7.0 _45\jre)
    3. 点击完成和确定按钮

    方式 3:

    1. 转到窗口 -> 首选项 -> Java -> 已安装的 JRE
    2. 选择您正在使用的 JRE
    3. 按编辑 -> 添加外部 JAR...
    4. 浏览到 Java\jdk1.7.0_45\lib 并选择 tools.jar 并按 Enter
    5. 点击完成和确定按钮

    【讨论】:

    • 很高兴听到 PSR 7
    【解决方案3】:

    如果您使用的是 eclipse,您还需要在 window > preferences > java > Installed JRE's 中添加, 指向您正在使用的 JDK 版本。

    【讨论】:

      【解决方案4】:

      在 Eclipse 中,导入 Maven 项目或调用“更新源”等操作在运行 Eclipse 的同一 JVM 中运行。如果该 JVM 来自不属于 JDK 的 JRE,则不会有 Java 编译器(tools.jar)。

      所以要从 Eclipse 中启动 Maven,用于启动的 JRE 也需要来自 JDK。默认情况下,Eclipse 会注册它启动的 JRE,但这可以配置如下:

      转到“Window / Preferences... / Java / Installed JREs”首选项页面

      点击 JRE > 编辑

      将 JRE Home 设置为与 JAVA_HOME 环境变量相同的值

      【讨论】:

        【解决方案5】:

        “C:\Development\java jre7”必须在某处。仔细检查您的环境和脚本。它不能凭空发明出来。 Maven 将尊重 JAVA_HOME,因此,某处某处正在使用该值。

        【讨论】:

          【解决方案6】:

          看起来你的 JAVA_HOME 可能指向 JRE 而不是 JDK?

          C:\Development\java jre7\..\lib\tools.jar
          

          你有安装 JDK 吗?如果是这样,请将您的 JAVA_HOME 更改为指向 JDK。 如果没有,请先下载JDK,然后设置JAVA_HOME。

          更新

          由于您是在 Eclipse 内部运行,因此您的答案是 SO - 您需要告诉 Eclipse 使用 JDK 而不是 JRE。

          【讨论】:

          • @user1882812 我认为他是正确的。你能用javac在你的机器上编译任何东西吗?
          猜你喜欢
          • 2012-10-21
          • 2012-09-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-20
          • 2011-01-14
          • 2012-01-14
          相关资源
          最近更新 更多