Linux下compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK解决

在尝试使用Maven编译Hudi时遇到错误提示,指出运行环境是JRE而非JDK。文章解释了JRE和JDK的区别,并指导读者检查和确认配置的是JDK。作者发现系统中配置的JDK未生效,实际运行的是OpenJDK,于是卸载OpenJDK并确保环境变量指向正确的JDK版本,最终成功编译。对于Windows用户,文章建议检查系统环境变量是否配置了JRE路径。

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

前言

在使用maven编译hudi的最后阶段,报错了:“compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK”。


意思就是你配置的是一个java运行时环境JRE(Java Runtime Environment),而不是Java开发环境JDK。这俩的区别就是jre负责运行程序,jdk既能运行程序,又能编译程序。所以jre是jdk的子集。

所以:配置Java环境的时候,只需要配置JDK,不需要JRE

安装JDK可以参考下面文章。
windows/linux/mac下JDK的安装

排错思路

  1. 我在bash_profile配置的是jdk,不是jre,刚开始报错我是不理解的。

可以看到,配置的jdk1.8.0_201。

  1. 我java -version了一下,一看是OpenJDK,我明白了,原来我配置的JDK没有生效。


那应该把OpenJDK卸载了就OK了。

卸载OpenJDK

# 找到openjdk的安装包
rpm -qa | grep java
# 卸载oepnjdk
yum -y remove java-1.8.0-openjdk-headless-1.8.0.332.b09-1.el7_9.x86_64

卸载成功之后,java -version查看,JDK成了201版本的了


然后编译成功了。

结语

如果是windows遇到这种问题,看看系统环境变量里面是不是配置的jre路径,一定不要配jre路径!!


95后小程序员,写的都是日常工作中的亲身实践,置身于初学者的角度从0写到1,详细且认真。文章会在公众号 [入门到放弃之路] 首发,期待你的关注。

感谢每一次遇见

### 解决方案 在 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()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值