java - 此环境不提供编译器

标签 java maven

在我开始之前,让我告诉你,我已经用谷歌搜索了大约一两个小时,所以请不要回答这个问题说“嘿!你知道谷歌上有很多答案吗?”

现在问题来了:每当我运行 mvn clean package 时,我都会收到此错误 No compiler is provided in this environment。也许您在 JRE 而不是 JDK 上运行?。我检查了我的 Java 版本,这些是输出。

Java JRE

java -version 返回 java 版本“1.8.0_181”

Java JDK

javac -version 返回 javac 1.8.0_181

Maven 版本

mvn -version 返回

Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T20:33:14+02:00)
Maven home: C:\Program Files\Apache\maven
Java version: 1.8.0_181, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jre1.8.0_181
Default locale: nl_NL, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

根据我在 Google 上的发现,应该有一行内容为 Java Home 或 JDK 版本及其路径后跟的内容。如您所见,它没有出现在这里。我已尝试多次设置 JAVA_HOME 变量,并通过执行 echo %JAVA_HOME 验证它是否有效,它返回了正确的路径。

有什么帮助吗?

编辑 echo %JAVA_HOME% 的输出:C:\Program Files\Java\jdk1.8.0_181

系统变量:

enter image description here

最佳答案

您是否设置了JDK_HOMEJAVA_HOMEMAVEN_HOME 环境变量? 正如@Chris311 在他的评论中所说,echo %JAVA_HOME 或在 Windows 中设置将显示环境变量是否已正确设置。

set JAVA_HOME

是的,JAVA_HOME 应该指向 JDK,而不是 JRE。例如,对于我的 Windows 机器,它是 JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181

enter image description here

更新

正如我们发现的那样,它在 git bash 控制台中不起作用,但它在命令行中起作用。我自己测试了 mvn clean package,它似乎可以工作。但是,一些在 cmd 中有效的命令在 git bash 中无效,例如 set java_home 或 cd 到带有 \ 的路径(我需要使用 /)。

关于java - 此环境不提供编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52316114/

相关文章:

java - 在java中计算科学数字

java - 如何获得实现通用接口(interface)的特定类的工厂而无需进行强制转换?

java - 缺少 Artifact com.google.android :android:jar:4. 4_r1

maven - Maven 控制台输出中的尖括号

java - Maven 依赖项已下载但在项目内部无法识别

java - 升级到4.2.3版本时Spring上下文初始化失败

java - Spring 返回 String 作为 JSON,行为改变

java - 扫描仪使用循环从命令行读取文本文件,但循环不会中断

java - 工厂方法模式与组合模式

Java:One-jar Maven 插件资源