我正在使用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?

当前回答

我去了首选项-> Java ->安装JREs我没有看到JDK在这里。我在这里只看到JRE。所以我添加了JDK。

在这里,我们必须强制删除JRE,而不是只是取消检查。

其他回答

我也遇到了同样的问题,我犯的错误是我只在路径var中添加了jre路径,而不是jdk路径。当jdk路径添加到路径并构建maven项目时,它的工作完美。谢谢

我有同样的问题,我只是添加JAVA_HOME环境变量。

如果您正在使用eclipse,请参考https://stackoverflow.com/a/21279068/6097074 如果您使用的是intellij,只需在添加JAVA_HOME后从项目目录打开命令提示符并运行mvn clean install(不要使用intellij终端)。

试试这个。

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable> path to jdk \bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

对我来说,在我对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>
</build>

其他的笔记

我可以看到m2e是在JRE中执行的,而不是JDK。我没有做任何改变,包括添加到eclipse.ini:

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

最后,我从未在JDK中执行m2e,但显式地设置Java编译器(如上所述)实现了这一目的。

在Eclipse IDE中,进入Window > Preferences > Java > Installed JREs >并检查已安装的JREs。这里应该有一个带有JDK的条目。 选择执行环境,如下所示。单击OK 然后右键单击项目-> Maven ->更新项目

此外,您可能必须更改Maven JRE(参见@jlars62 answer),如下所示。运行配置,选择Maven构建我正在运行(从左侧面板)。然后,单击JRE选项卡并选择Workspace default JRE选项