我正在使用m2eclipse在Eclipse中编译一个项目。我在Eclipse中设置JDK路径,如下所示:

Windows-->preferences-->installed jres--> jdk1.7.xx  path

但是这显示了一个错误

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE    rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-   plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

当前回答

在Linux中,做一个docker的例子,我一定没有安装JDK,只安装了JRE。sudo apt安装openjdk-8-jdk,在配置文件中设置JAVA_HOME,并将JAVA_HOME/bin添加到路径中,它就构建了!

其他回答

这个问题还有另一个可能的答案,我可能是唯一一个愚蠢到偶然发现这个问题的人,但我认为它值得补充,因为其他答案都不适用,因为我已经正确地设置了这些设置。

当您安装JDK时,安装程序会询问您要将文件安装在哪里。默认情况下,在Windows上,这类似于C:\Program Files\Java\ jdk1.8.0_74(或您正在安装的任何版本)。

然后,它要求您提供一个安装JRE的目录,默认情况下,该目录类似于C:\Program Files\Java\ jre1.8.0_74。

注意,一个是jdk1.8.0_74,另一个是jre1.8.0_74

我太着急了,以为安装程序问了我两次同样的问题,把JDK和JRE安装位置都设置为D:\devtools\ JDK \jdk1.8.0_74,导致安装程序用JRE覆盖JDK。这导致(除其他外)我的JDK bin中缺少javac.exe,并且OP在我的所有maven构建中报告了相同的错误。

添加新的JRE定义(选择路径JDK),为我工作。

http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm

在Windows 7 - 64位中,存在一个权限问题,阻止安装程序将文件C:\Program Files\Java\jdk1.6.xx\lib\tools.jar解压缩到您的本地。这个jar文件是maven-compiler-plugin版本3。而不是通常的javac

解决方案:以管理员身份运行Java JDK安装程序!并确保tools.jar位于C:\Program Files\Java\jdk1.6.xx\lib\

如果您正在使用m2e maven集成插件,您希望通过以下步骤在Eclipse中看到该文件对Eclipse可见:

进入“窗口->首选项-> Java ->安装的jre” 选择您正在使用的JDK (C:\Program Files\Java\jdk1.6.xx) 按Edit查看包括tools.jar在内的JAR列表,或者您可以将其添加为add External JAR 然后通过以下步骤配置maven:

执行->执行配置->填写“名称”、“基本目录”和“目标”。 然后在同一个窗口中移动到JRE选项卡并指向JDK \jdk1.6.xx\

我做了以下改变,它对我很有效。希望它能帮助到别人。

有几个选项需要指定。

步骤: 就在项目资源管理器的项目中 去运行->运行配置->单击Maven构建->单击您的构建配置/或创建一个新的配置。 您将看到窗口如下所示的快照,单击JRE选项卡。

您可以看到有3个选项:1)工作空间默认JRE 2)执行环境3)可选JRE 1)工作空间默认JRE从顶部的“窗口”菜单设置->首选项-> Java ->已安装的JRE -在这里您可以添加您的jdk 2)执行环境jdk可以设置在@ksnortum提到的pom.xml中

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <fork>true</fork>
            <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
        </configuration>
    </plugin>
</plugins>

3)备用JRE可用于从您的目录中选择jdk