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

当前回答

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

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

这对我很管用。

其他回答

当我创建一个新的EC2 ubuntu 16.04实例时,我得到了同样的错误,上面已经安装了Java,而运行mvn清洁包时,我遇到了这个问题,下面的解决方案对我有效。

如果你在Ubuntu服务器上工作,那么你可以尝试重新安装Java,为此你可以使用这个回答如何在Ubuntu Linux上安装JDK

对我来说,JRE在PATH环境变量中,在JDK路径之前

C: Java ProgramData Oracle \ \ javapath C: \环境jdk1 8月0_151 \ bin

所以我去掉了1。也许交换它们也能解决问题。

试试这个。

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

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

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

希望这能有所帮助。

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

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

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