我正在使用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项目时,它的工作完美。谢谢

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

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

我是这样理解的:

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

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

我有办法了。

这个问题最常见的解决方案是将jdk位置更改为我的Installed JREs而不是JRE位置,但这一次并没有解决我的问题。

所以我做了下面的事情来解决这个问题。 展开Installed JREs选项卡,您将发现一个Execution environments选项卡。

单击您最喜欢的执行环境。我用的是JAVASE-1.8。这里显示了两个选项。JDK和JRE。选择JDK,问题就解决了。

你是否遗漏了任何专家构建。

除了以上的JRE更改。我仍然面临着类似的问题。我错过了JUnit依赖后,添加它是工作正常。

希望这能有所帮助。

我的答案与Windows环境中的Eclipse有关。

我打开首选项——> Java——>安装jre 我在这里没有看到JDK。我在这里只看到JRE。 所以我添加了JDK,然后未选中JRE。然后检查JDK。 然后使用Run Configurations运行POM文件。选择选项卡JRE并选择选项“Workspace Default…” 这些是图片