前言
在使用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的安装
排错思路
- 我在bash_profile配置的是jdk,不是jre,刚开始报错我是不理解的。
可以看到,配置的jdk1.8.0_201。
- 我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,详细且认真。文章会在公众号 [入门到放弃之路] 首发,期待你的关注。