郁闷的问题:No compiler is provided is this environment. Perhaps you are running in a JRE rather than JDK

本文解决了在Eclipse中创建Maven项目后,在DOS界面运行mvn命令时报错的问题。原因是配置指向了JRE而非JDK,给出了三种解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

截图如下:
这里写图片描述

出错的时候的使用场景: 我在eclipse时创建了一个maven项目,然后在dos界面直接运行 mvn clean install 或 mvn compile(注:其实运行两个命令,其中的一些步骤是需要编译项目的java文件的,找不到编译器,所以报错了)这些命令。结果:提示上面的错。

字面原因解释大概是当我们在编译一些java文件时,但是找不到对应的编译器。当我们在下载JDK时,其实同时下载了一套JRE。

JDK主要是开发时用的,其中不仅带了编译器(也就是我们用的javac.exe这个东西),还带了执行class文件的运行器(也就会java.exe这个东西)。JRE中仅仅带了执行class文件的运行器(也就是java.exe这个东西)。但是将.java文件编译成.class文件必须有javac.exe这个东西。

根本原因: 你配置的是JRE,而不是JDK。或者你认为你自己配置正确了,但是所用的软件有自己查找路径的方法,和你的配置有出入。

解决办法:

方法一:
改变eclipse的配置,这个也是网上给出的答案。但是我的问题并不是在这里。改变配置截图如下:

点击window —》 点击preferences —-》点击Java —》 点击Installed JREs —》在右边的配置中,改变Location的路径为自己安装的JDK路径或者新增一个路径并设置为默认的路径。

看下面的截图。
这里写图片描述

上面就是网上的答案,相信很多人都是这个问题,可惜我的不是这个问题,所以很头疼。。

方法二:
可能是我自己作死。我在我的电脑上安装了三个版本的JDK。
如果只安装一个版本的JDK,传统的环境变量配置如下:

JAVA_HOME = "your java home"
CLASSPATH = "your class path"
PATH = "add new path after old path"

然而呢,因为我安装了三个版本的JDK,就没有配置JAVA_HOME这个变量,我的JAVA_HOEM的变化情况如下:

JAVA6_HOME = "your java6 version home"
JAVA7_HOME = "your java7 version home"
JAVA8_HOEM = "your java8 version home"
//如果想用哪个版本的JDK,我需要改classpath和path对JAVA_HOME引
//用,比如:我想用JAVA6,我把原来的classpath和path中的JAVA_HOME换成JAVA6_HOME。(很蠢的方法。。)

经过上述配置后,mvn内部应该还是找JAVA_HOME,但是我并没找到这样的配置,不知道是不是写死了?(有知道的麻烦告诉我下,谢谢!!)。经过捣鼓,经过下面的重新配置后,一切就正常了。

JAVA6_HOME = "your java6 version home"
JAVA7_HOME = "your java7 version home"
JAVA8_HOME = "your java8 version home"
JAVA_HOME = "写上你想用的java版本,并且不需要修改classpath和path"
//比如: JAVA_HOME = %JAVA8_HOME

方法三:
自己一点点查找原因吧。只要分清楚出错的原因,自然慢慢能定位到出错的地方。

### 解决方案 在 IntelliJ IDEA 中遇到“No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?” 的错误提示时,通常是因为当前环境正在使用 Java Runtime Environment (JRE),而未正确配置 Java Development Kit (JDK)[^1]。以下是具体的解决方案: #### 配置正确的 JDK 路径 确保在 IntelliJ IDEA 中已正确指定 JDK 的路径。可以通过以下方式完成: 1. 打开 **File → Project Structure**。 2. 在 **Project Settings** 下选择 **Project**。 3. 将 **Project SDK** 设置为已安装的 JDK 版本[^2]。 #### 检查项目的模块设置 除了全局项目设置外,还需要确认单个模块是否也指定了正确的 JDK: 1. 在 **Project Structure** 对话框中,导航到 **Modules**。 2. 选中对应的模块并验证其 **Module SDK** 是否指向有效的 JDK 安装位置。 #### 环境变量配置 如果上述操作仍未解决问题,则可能需要检查系统的 `JAVA_HOME` 环境变量是否正确设置了 JDK 的根目录。例如,在 macOS 上可以将其设为 `/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home`[^5];而在 Windows 或 Linux 平台上则应根据实际安装路径调整。 另外需要注意的是,当使用 Maven 构建工具时,可能会因为多个版本冲突而导致异常行为。此时可以在命令脚本文件(如 mvn.cmd)的第一行手动定义唯一的 JAVA_HOME 值来规避此类问题[^4]: ```batch set JAVA_HOME=D:\jdk1.8 ``` 最后提醒一点,对于某些特定场景下的集成开发需求来说,还应当考虑 IDE 和构建插件之间的兼容性关系——比如较新的 Idea 版本搭配过高版次的外部 Maven 可能引发额外麻烦,适当降级后者往往能够有效缓解这些矛盾状况。 ```python # 示例代码片段用于演示如何通过 Python 查找系统中的 JAVA_HOME import os def get_java_home(): return os.environ.get('JAVA_HOME') print(f"Current JAVA_HOME setting: {get_java_home()}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值