我正在使用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?
对我来说,在我对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编译器(如上所述)实现了这一目的。
这个问题还有另一个可能的答案,我可能是唯一一个愚蠢到偶然发现这个问题的人,但我认为它值得补充,因为其他答案都不适用,因为我已经正确地设置了这些设置。
当您安装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构建中报告了相同的错误。
我只是浪费了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,享受吧!(至少我是这么做的)
希望这能让那些可怜的流浪者少受些麻烦。
问题声明=此环境中不提供编译器。也许您正在运行JRE而不是JDK?intellij
解决方案
请像下面这样设置环境变量来解决问题
变量名:JAVA_HOME
变量值:C:\Program Files\Java\ jdk1.8.0_202
变量名:M2_HOME
变量值:C:\Program Files\ apache-maven-3.6.0
此外,在“系统变量”中添加Java和maven路径,如下所示:
C:\Program Files\Java\ jdk1.8.0_202 \ bin
C:\Program Files\ apache-maven-3.6.0 \ bin
在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\