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

当前回答

我只是浪费了3个小时在这个问题上,直到我设法使它工作。 当我在Eclipse终端中发出mvn编译命令时,我有这个错误:

此环境中不提供编译器。也许您正在运行JRE而不是JDK?

因此,我在这里读到,我必须创建一个名为JAVA_HOME的新系统变量,并使其指向jdk安装文件夹。然而,这产生了另一个错误:

不再支持源选项1.5。使用1.6或更高版本

找不到解决办法,所以…

因此,解决这些问题的方法是安装Java SE开发工具包8! 我用的是9,我想如果是最新的,肯定更好…

无论如何……

卸载计算机上的所有java版本 从这里安装JDK8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 然后在这里定义JAVA_HOME系统的环境值教程: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/ 重新启动Eclipse,享受吧!(至少我是这么做的)

希望这能让那些可怜的流浪者少受些麻烦。

其他回答

我有办法了。

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

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

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

如果jaipster的答案不起作用,另一个选择是: 窗口>首选项> Java >已安装的jre

然后编辑jre,使其指向jdk而不是jre (jre包编辑器中的jre home文件)。

这对我很管用。

我尝试了以上所有方法,但是仍然得到相同的错误消息。

在我的案例中,在特定于项目的构建路径中,一个实际的JRE被错误地用作JRE系统库,这显然覆盖了这里讨论的所有其他设置。

如果你是这样的话,试试下面的方法:

打开Java Build Path的特定项目库:右键单击“Project > Build Path > Configure Build Path…”并选择“libraries”选项卡。 选择“JRE System Library”条目并点击“Remove”。 点击“添加库…”。 弹出一个向导。选择“JRE System Library”,然后按“Next >”。 现在选择正确的JDK(在我的例子中是“Workspace default JRE”,我选择了JDK 使用JDK配置)。 点击“完成”关闭向导。 点击“OK”关闭“Properties”对话框。

我只是浪费了3个小时在这个问题上,直到我设法使它工作。 当我在Eclipse终端中发出mvn编译命令时,我有这个错误:

此环境中不提供编译器。也许您正在运行JRE而不是JDK?

因此,我在这里读到,我必须创建一个名为JAVA_HOME的新系统变量,并使其指向jdk安装文件夹。然而,这产生了另一个错误:

不再支持源选项1.5。使用1.6或更高版本

找不到解决办法,所以…

因此,解决这些问题的方法是安装Java SE开发工具包8! 我用的是9,我想如果是最新的,肯定更好…

无论如何……

卸载计算机上的所有java版本 从这里安装JDK8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 然后在这里定义JAVA_HOME系统的环境值教程: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/ 重新启动Eclipse,享受吧!(至少我是这么做的)

希望这能让那些可怜的流浪者少受些麻烦。

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

当您安装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构建中报告了相同的错误。