714

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

37 回答 37

1082
  1. 在您的 Eclipse IDE 上,进入Window > Preferences > Java > Installed JREs > 并检查您安装的 JREs。您应该在那里有一个带有 JDK 的条目。
  2. 选择执行环境,如下所示。点击确定
  3. 然后右键单击您的项目 -> Maven ->更新项目

此外,您可能必须更改 Maven JRE(请参阅@jlars62 答案),如下所示。转到运行 -> 运行配置,选择我正在运行的 Maven 构建(从左侧面板)。然后,我单击 JRE 选项卡并选择选项 Workspace default JRE

在此处输入图像描述

于 2014-01-22T09:34:38.673 回答
153
  1. JAVA_HOME环境变量设置为 JDK 根文件夹 - 如果您运行命令行或 maven ( mvn),则需要。
    • (搜索谷歌JAVA_HOME了解更多信息)
  2. 在 Java 编译器部分的项目属性中选择所需的 JDK - 如果您直接从 eclipse 运行
于 2013-10-29T10:15:31.670 回答
149

对我来说,这正是日食专家所抱怨的

在此处输入图像描述

所以,我按下Edit按钮并更改 JDK 文件夹的路径,然后清理项目,一切都开始工作

于 2014-04-25T09:13:05.807 回答
142

对我来说,在我对 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

最后,我从来没有让 m2e 在 JDK 中执行,但是显式设置 Java 编译器(如上)就可以了。

于 2014-01-01T00:32:10.957 回答
48

在我的情况下,它是通过这样做解决的:

转到“运行时配置”并将 JRE 配置为 JDK。

为您的运行时选择正确的 JDK

选择默认 JRE

我复制了答案,以防它因某种原因被删除,但来源在这里

于 2016-04-05T21:31:18.140 回答
41

尝试从 Eclipse 中进行 Maven 构建时出现此错误。

对我来说,答案是Run-> Run Configurations,选择Maven Build我正在运行(从左侧面板)。然后,我单击JRE选项卡并选择了选项Workspace default JRE

于 2014-09-02T21:22:37.867 回答
36

转到 windows -> 首选项 -> Java -> 已安装的 JRE

可能已经添加了 jre 在此处输入图像描述

单击添加 -> 标准 VM -> 下一步 -> 目录

并在我的案例路径中浏览 JDK 是C:\Program Files\Java\jdk1.8.0_111

然后点击完成。

你会看到这样的窗口在此处输入图像描述

选择 JDK -> 应用 -> 确定

你完成了。

于 2016-12-06T16:43:22.657 回答
21

我遇到了同样的问题,我只是添加JAVA_HOME环境变量中。

环境变量

  • 如果您使用的是 eclipse,请参考https://stackoverflow.com/a/21279068/6097074
  • 如果您使用的是 intellij,只需JAVA_HOME从项目目录添加打开命令提示符并运行mvn clean install(不要使用 intellij 终端)。
于 2018-07-08T05:59:12.117 回答
14

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

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

如果您的情况是这样,请尝试以下操作:

  1. 打开 Java Build Path 的项目特定库:右键单击“Project > Build Path > Configure Build Path...”并选择“Libraries”选项卡。
  2. 选择“JRE System Library”条目并点击“Remove”。
  3. 点击“添加库...”。
  4. 弹出一个向导。选择“JRE System Library”并点击“Next >”。
  5. 现在选择正确的 JDK(在我的例子中是“Workspace default JRE”,我使用 JDK 配置)。
  6. 点击“完成”关闭向导。
  7. 点击“确定”关闭“属性”对话框。
于 2016-09-05T12:26:01.657 回答
12

如果 jaipster 的答案不起作用,另一种方法是转到:
Window > Preferences > Java > Installed JREs

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

这对我有用。

于 2014-03-17T10:54:32.783 回答
11

如果Maven从 运行命令cmd,请确保在运行命令之前设置 jdk 路径。就我而言,我创建了一个.bat包含以下内容的文件:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"
于 2016-07-21T16:44:10.047 回答
11

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

这个问题确实太天真了,我没有设置JAVA_HOME环境变量。我所要做的就是将 JAVA_HOME 环境变量设置为 JDK 目录,确保它直到"\bin"并且没有分号 ";" .

在此处输入图像描述

我的理解是:

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

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

于 2017-08-06T08:35:16.107 回答
9

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

我去了 Preferences --> Java --> Installed JREs 我在这里没有看到 JDK。我在这里只看到了JRE。所以我添加了JDK,然后取消选中了JRE。然后检查JDK。然后我使用运行配置运行 POM 文件。选择选项卡 JRE 并选择选项“Workspace Default...” 这里是图片

在此处输入图像描述

在此处输入图像描述

于 2018-10-24T10:40:00.987 回答
7

虽然问题是关于Eclipse设置错误,但认为修复此错误的答案IntelliJ和 Windows 10 设置在这里也可能会有所帮助。

1 . 转到File--> Settings--> Build, Execution, Deployment--> Build Tools--> Maven-->Importing

2 . 如下图设置JDKImporterJAVA_HOME

在此处输入图像描述

还应在 Environment Variables --> System variablesJAVA_HOME设置为JDKpath 并添加%JAVA_HOME%\bin到 Path System variables

于 2019-08-22T14:52:50.480 回答
7

问题陈述= 此环境中未提供编译器。也许您在 JRE 而不是 JDK 上运行?智能

解决方案

请如下设置环境变量以解决问题

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_202

变量名:M2_HOME

变量值:C:\Program Files\apache-maven-3.6.0

此外,在“系统变量”中添加 Java 和 maven 路径,如下所示:

  1. C:\Program Files\Java\jdk1.8.0_202\bin

  2. C:\Program Files\apache-maven-3.6.0\bin

于 2019-04-10T21:36:46.657 回答
7

有几个选项可以指定。

步骤:在项目资源管理器中的项目上转到运行-> 运行配置-> 单击 Maven 构建-> 单击您的构建配置/或创建一个新配置。您将看到下面给定快照的窗口,单击那里的 JRE 选项卡。

您看到您有 3 个选项 1) 工作区默认 JRE 2) 执行环境 3) 备用 JRE 在此处输入图像描述 1) 工作区默认 JRE 是从顶部的“窗口”菜单设置的 -> 首选项 -> Java -> 已安装的 JRE -在这里您可以添加您的jdk 在此处输入图像描述 2)执行环境 jdk 可以在 pom.xml 中设置,如@ksnortum 所述

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

3) 备用 JRE 可用于从您的目录中选择 jdk

于 2017-01-06T20:45:26.343 回答
5

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

  1. C:\ProgramData\Oracle\Java\javapath
  2. C:\env\jdk1.8.0_151\bin

所以我删除了 1。可能交换它们也可以解决它。

于 2018-01-11T04:09:05.873 回答
3

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

安装 JDK 时,安装程​​序会询问您要将文件安装在哪里。默认情况下,在 Windows 上,这类似于 C:\Program Files\Java\jdk1.8.0_74 (或您正在安装的任何版本)。

然后它会询问您安装 JRE 的目录,默认情况下该目录类似于 C:\Program Files\Java\jre1.8.0_74。

注意一个是jdk 1.8.0_74,另一个是jre 1.8.0_74

我很着急,以为安装程序两次问我同样的问题,将我的 JDK 和 JRE 安装位置都设置为 D:\devtools\jdk\jdk1.8.0_74,导致安装程序用 JRE 覆盖 JDK。这导致(除其他外)我的 JDK bin 中缺少 javac.exe,以及 OP 在我的所有 maven 构建中报告的相同错误。

于 2016-02-10T02:54:19.330 回答
3

我有一个解决方案。

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

所以我做了以下来解决这个问题。展开Installed JREs选项卡,您将找到执行环境选项卡。

单击您喜欢的执行环境。就我而言,它是JAVASE-1.8。那里显示了2个选项。JDK 和 JRE。在那里选择JDK,问题就解决了。

在此处输入图像描述

于 2017-03-24T07:24:59.310 回答
3

我尝试了大多数答案都没有成功。对我有用的是(在关注https://stackoverflow.com/a/21279068/2408893之后):

  • 右键单击项目-> 属性
  • 选择 Java 构建路径
  • 选择 JRE 系统库
  • 点击编辑
  • 在执行环境中选择一个jdk

在此处输入图像描述

  • 点击完成
  • 构建并运行
于 2019-04-18T13:58:25.287 回答
2

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

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

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

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

找不到解决这个问题的方法,所以...

所以解决这一切的方法是安装 Java SE Development Kit 8! 我正在使用 9 认为如果它是最新的它一定会更好......

反正...

  1. 从您的计算机中卸载所有 java 版本
  2. 从这里安装 JDK8: http ://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. 然后定义JAVA_HOME系统环境值——教程在这里: https ://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. 重新启动 Eclipse 并享受吧!(至少那是我所做的)

希望这能让一些可怜的流浪者免于麻烦。

于 2017-11-30T21:35:05.830 回答
2

就我而言,我的系统变量路径具有“C:\ProgramData\Oracle\Java\javapath”位置。

在 "C:\ProgramData\Oracle\Java\javapath" 位置 java, javaw 只有那里。所以我得到了同样的错误。

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

于 2018-03-18T08:01:57.050 回答
2

我做了以下更改,它对我有用。希望它对某人有所帮助。在此处输入图像描述

于 2016-01-19T08:24:56.437 回答
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>
于 2014-09-03T13:14:29.123 回答
1

添加新的 JRE 定义(选择路径 JDK),为我工作。

http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm

于 2017-02-04T17:42:44.230 回答
1

我遇到了同样的问题,我犯的错误是我只在路径 var 中添加了 jre 路径,而不是 jdk 路径。当将 jdk 路径添加到路径并构建 maven 项目时,它的工作完美。谢谢大家

于 2015-07-09T17:50:56.477 回答
1

在 Windows 7 - 64 位中,存在权限问题,导致安装程序无法将文件 C:\Program Files\Java\jdk1.6.xx\lib\tools.jar 解压缩到本地。这个 jar 文件是 maven-compiler-plugin 版本 3.x 使用的,而不是通常的 javac

解决方案:以管理员身份运行 Java JDK 安装程序!并确保 tools.jar 位于 C:\Program Files\Java\jdk1.6.xx\lib\

如果您使用的是 m2e maven 集成插件,您希望通过 Eclipse 中的以下步骤查看该文件对 Eclipse 可见:

转到 Window -> Preferences -> Java -> installed JREs 选择您正在使用的 JDK (C:\Program Files\Java\jdk1.6.xx) 按编辑查看包含 tools.jar 的 jar 列表,或者您可以将其添加为 Add External JAR 然后通过以下步骤配置 maven 运行:

运行->运行配置->填写名称、基本目录和目标。然后在同一窗口中移动到 JRE 选项卡并指向 JDK \jdk1.6.xx\

于 2019-09-13T06:08:32.627 回答
1

当我创建一个已经安装了 Java 的新 EC2 ubuntu 16.04 实例并且在运行 mvn clean package 时遇到了同样的错误,我遇到了这个问题,下面的解决方案对我有用。

如果您在 Ubuntu 服务器上工作,那么您可以尝试再次安装 Java,为此您可以使用此答案How to install the JDK on Ubuntu Linux

于 2018-09-04T11:48:37.263 回答
0

右键单击您的项目并作为 maven install 运行,然后再次运行您的应用程序。如果这不起作用,请转到您项目的文件夹直接启动命令行并运行“mvn install”在此处输入图像描述

于 2020-12-19T06:39:03.763 回答
0

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

于 2021-09-06T20:42:35.690 回答
0

在构建项目时,确保将 jre 指向 jdk 路径。这可以在特定项目的运行配置部分中完成。

于 2022-02-09T04:41:07.030 回答
0

您是否缺少任何 Maven 构建。

除了上述 JRE 更改之外。我仍然面临类似的问题。添加后我缺少 JUnit 依赖项,它工作正常。

希望这会有所帮助。

于 2017-04-09T08:28:10.257 回答
0

除了上面的答案,我可以说只是尝试从终端(在 Eclipse 之外)运行 Maven。这样,如果它是从外部构建而不是在 Eclipse 中构建的,您可以理解问题应该在 Eclipse 中。

于 2016-07-25T11:11:56.283 回答
0

我去了 Preferences --> Java --> Installed JREs 我在这里没有看到 JDK。我在这里只看到了JRE。所以我添加了JDK。

在这里,我们必须强制删除 JRE 而不是取消选中。

于 2019-03-26T09:43:55.640 回答
0

关于这个问题有几个答案,但都与JDK的正确路径配置有关,但只有JR​​E才能解决这个问题。

我们只需要利用部署程序集配置Java EE项目打包好的war文件路径,然后重新运行maven-install即可。

使用部署程序集的步骤:

  1. 右键单击 Jave EE 项目 --> 单击属性 --> 单击部署程序集

  2. 单击添加按钮->单击文件系统中的存档->单击下一步->单击添加->转到.m2\respository目录并搜索生成的war文件->选择war文件--> 点击打开按钮 --> 点击应用 --> 确定

  3. 右键单击项目->单击运行方式下的Maven安装

这将成功构建您的项目,而不会出现任何编译器错误。

希望这可以解决没有 JDK 的问题。

于 2017-01-25T10:18:54.273 回答
0

这是因为它正在寻找 JDK 并正在创建 JRE。

推荐解决方案:

Window > Preferences > Java > Installed JREs > Edit > Click on directory > Browse JDK path...。

那应该可以正常工作。
它对我来说很好!

于 2022-01-20T02:21:23.053 回答
0

对我来说,我已经升级到 Big Sur Mac OS,我必须删除它,然后它运行良好。

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
于 2022-01-14T19:26:54.867 回答