Maven无法找到Javac编译器 - 无法找到Javac编译器:

时间:2013-01-05 16:12:27

标签: java maven m2e

当我尝试在我的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 .....

6 个答案:

答案 0 :(得分:13)

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

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

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

<强>更新

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

答案 1 :(得分:4)

对于eclipse用户:
方式1:

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

    1. 转到窗口 - &gt;偏好 - &gt; Java - &gt;已安装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. 单击“完成”和“确定”按钮
    4. 方式3:

      1. 转到窗口 - &gt;偏好 - &gt; Java - &gt;已安装JRE
      2. 选择您正在使用的JRE
      3. 按编辑 - &gt;添加外部JAR ......
      4. 浏览到Java \ jdk1.7.0_45 \ lib并选择tools.jar并按Enter键
      5. 单击“完成”和“确定”按钮

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果您正在使用eclipse,还需要在窗口中添加&gt;偏好&gt; java&gt;已安装的JRE, 指向您正在使用的JDK版本。

答案 4 :(得分:0)

在Eclipse中,执行导入Maven项目或调用&#34;更新源&#34;在运行Eclipse的同一JVM中运行。如果JVM来自不属于JDK的JRE,则不会有Java编译器(tools.jar)。

因此,要从Eclipse中启动Maven,用于启动的JRE也需要来自JDK。默认情况下,Eclipse会注册它从中启动的JRE,但可以按如下方式进行配置:

转到&#34;窗口/首选项... / Java /已安装的JRE&#34;偏好页面

点击JRE&gt;修改

将JRE Home设置为与JAVA_HOME env变量

的值相同

答案 5 :(得分:0)

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

  1. 转到Manage Jenkins
  2. 全局配置工具 - &gt; JDK
  3. 设置JAVA_HOME的路径: