我正在使用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_HOME环境变量设置为JDK根文件夹——如果您运行命令行或maven (mvn),则需要这样做。 (搜索谷歌JAVA_HOME获取更多信息) 在Java编译器部分的项目属性中选择所需的JDK -如果您直接从eclipse运行

其他回答

在我的情况下,我有系统变量路径有“C:\ProgramData\Oracle\Java\javapath”位置。

在“C:\ProgramData\Oracle\Java\javapath”中定位Java, javaw只在那里。所以我得到了同样的错误。

一旦我删除了“C:\ProgramData\Oracle\Java\javapath”文件夹中的所有文件,我的错误得到了解决。

在Linux中,做一个docker的例子,我一定没有安装JDK,只安装了JRE。sudo apt安装openjdk-8-jdk,在配置文件中设置JAVA_HOME,并将JAVA_HOME/bin添加到路径中,它就构建了!

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

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

问题声明=此环境中不提供编译器。也许您正在运行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

试试这个。

<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>