繁体   English   中英

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

[英]No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

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

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

在此处输入图片说明

对我来说,这正是 eclipse 的专家抱怨的

在此处输入图片说明

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

  1. JAVA_HOME环境变量设置为 JDK 根文件夹 - 如果您运行命令行或 maven ( mvn ),则这是必需的。
    • (在谷歌搜索JAVA_HOME了解更多信息)
  2. 在 Java Compiler 部分的项目属性中选择所需的 JDK - 如果您直接从 eclipse 运行

对我来说,在我对 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 编译器(如上所述)可以解决问题。

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

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

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

选择默认 JRE

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

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

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

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

可能是 jre 已经添加了在此处输入图片说明

点击添加 -> 标准虚拟机 -> 下一步 -> 目录

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

然后点击完成。

你会看到这样的窗口在此处输入图片说明

选择 JDK -> 应用 -> 确定

你已经完成了。

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

环境变量

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

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

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

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

  1. 打开Java Build Path的项目专用库:右键“Project > Build Path > Configure Build Path...”,选择“Libraries”选项卡。
  2. 选择“JRE 系统库”条目并点击“删除”。
  3. 点击“添加库...”。
  4. 弹出一个向导。 选择“JRE 系统库”并点击“下一步 >”。
  5. 现在选择正确的 JDK(在我的例子中是“Workspace default JRE”,这是我使用 JDK 配置的)。
  6. 点击“完成”关闭向导。
  7. 点击“确定”关闭“属性”对话框。

如果 jaipster 的答案不起作用,另一种方法是转到:
窗口 > 首选项 > Java > 已安装的 JRE

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

那对我有用。

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

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"

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

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

在此处输入图片说明

我的理解是这样的:

该应用程序在Eclipse工作细如JRE系统库指的是JRE的JDK文件夹,而不是外部JRE文件夹中没有JDK里面 [正如在其他答案中很好地解释的那样]

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

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

我去了首选项 --> Java --> 安装的 JRE 我在这里没有看到 JDK。 我只在这里看到了 JRE。 所以我添加了JDK,然后取消选中JRE。 然后检查JDK。 然后我使用运行配置运行 POM 文件。 选择选项卡 JRE 并选择选项“工作区默认...”这是图像

在此处输入图片说明

在此处输入图片说明

有几个选项可以指定。

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

您会看到有 3 个选项 1) 工作区默认 JRE 2) 执行环境 3) 备用 JRE 在此处输入图片说明 1) 工作区默认 JRE 是从顶部的“窗口”菜单设置的 -> 首选项 -> Java -> 已安装的 JRE - 在这里您可以添加您的 jdk 在此处输入图片说明 2)执行环境jdk可以在@ksnortum提到的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>

3) 替代 JRE 可用于从您的目录中选择一个 jdk

问题陈述= 此环境中未提供编译器。 也许您在 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

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

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

2 . 如下图设置Importer JDKJAVA_HOME

在此处输入图片说明

此外, JAVA_HOME应该在 Environment Variables --> System variables 中设置为JDK路径,并将%JAVA_HOME%\\bin添加到路径系统变量

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

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

所以我删除了 1. 可能交换它们也会修复它。

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

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

我得到了解决方案。

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

所以我做了下面的事情来解决这个问题。 展开已安装的 JRE选项卡,您将找到一个执行环境选项卡。

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

在此处输入图片说明

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

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

在此处输入图片说明

  • 单击完成
  • 构建并运行

我只是在这个问题上浪费了 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 并享受! (至少我是这样做的)

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

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

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

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

尝试这个。

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

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

我做了以下更改,它对我有用。希望它可以帮助某人。 在此处输入图片说明

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

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

在 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) 按 Edit 查看包含 tools.jar 的 jar 列表,或者您可以将其添加为 Add External JAR 然后通过以下步骤配置 maven 运行:

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

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

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

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

使用部署程序集的步骤:

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

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

  3. 右击项目-->点击Run As下的Maven Install

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

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

你错过了任何maven构建吗?

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

希望这会有所帮助。

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

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

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

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

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

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

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

推荐解决方案:

窗口 > 首选项 > Java > 已安装的 JRE > 编辑 > 单击目录 > 浏览 JDK 路径...。

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

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

请为windows使用

  1. 如果您使用的是 intellij,只需在添加 JAVA_HOME 后从项目目录打开命令提示符并运行 mvn clean install(不要使用 intellij 终端)。

  2. 设置 JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM