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

当前回答

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

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

其他回答

除了上面的回答之外,我可以说,只需尝试从终端(Eclipse之外)运行Maven。通过这种方式,如果它是从外部构建而不是在Eclipse中构建,那么您就可以理解问题应该在Eclipse中。

如果您正在从cmd运行Maven命令,请确保在运行该命令之前设置了jdk路径。在我的例子中,我创建了一个包含以下内容的.bat文件:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"

我在尝试使用mvn clean install为我的项目应用程序构建jar文件时遇到了同样的问题,尽管应用程序在从Eclipse运行时工作得很好。

我没有设置JAVA_HOME环境变量,这确实太天真了。我所要做的就是将JAVA_HOME环境变量设置为JDK目录,确保它不是“\bin”,并且没有分号“;”。

我是这样理解的:

应用程序在Eclipse中运行良好,因为JRE系统库引用的是JDK文件夹中的JRE,而不是没有JDK的外部JRE文件夹。[在其他答案中解释得很好]

此配置不适用于我们在命令提示符上运行的maven命令。它仍然会寻找JAVA_HOME变量来访问JRE系统库,当没有找到它时,它会引用没有JDK的外部JRE文件夹。

请使用windows

如果您使用的是intellij,只需在添加JAVA_HOME后从项目目录打开命令提示符并运行mvn clean install(不要使用intellij终端)。 set JAVA_HOME=C:\程序文件\Java\jdk1.8.0_202

进入“windows”->首选项-> Java ->已安装的jre

可能jre已经添加

单击“添加->标准虚拟机->下一步->目录”

并浏览JDK 在我的例子中,路径是C:\Program Files\Java\ jdk1.8.0_111

然后点击完成。

你会看到这样的窗户

select JDK -> Apply -> Ok

你完成了。