必须安装openjdk 11并配置全局java_home:先yum install -y java-11-openjdk-devel,再用alternatives或ls定位真实路径,最后写入/etc/profile或/etc/profile.d/java.sh并source生效。

要在CentOS 7上让Java应用(如Tomcat、Maven、Spring Boot)稳定运行,必须安装OpenJDK 11并确保JAVA_HOME在所有新终端会话中自动生效——这要求环境变量写入全局配置文件且路径指向真实安装目录,否则服务启动时会报“JAVA_HOME not set”错误。
用yum一键安装OpenJDK 11
这一步操作起来很简单,直接执行命令即可,无需下载、解压或手动校验签名。
先刷新软件源并确认系统已更新:
sudo yum update -y
执行安装命令:
sudo yum install -y java-11-openjdk-devel
【devel包必须安装】它包含javac、javadoc等开发工具;只装java-11-openjdk(无-devel)会导致编译失败。
验证是否装全:
java -version && javac -version
输出应同时显示OpenJDK 11的runtime和compiler版本信息。
定位JDK真实安装路径
不要凭经验写/usr/lib/jvm/java-11-openjdk,因为不同镜像或更新后子目录名带时间戳和构建号,硬编码必然失效。
执行以下任一命令查看实际路径:
sudo alternatives --config java → 按回车跳过选择 → 观察输出中*号标记行末尾的路径
或
ls -d /usr/lib/jvm/java-11-openjdk-*
你会看到类似这样的路径:
/usr/lib/jvm/java-11-openjdk-11.0.24.0.8-1.el7_9.x86_64
复制该完整路径,后续配置中必须一字不差粘贴。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
永久配置JAVA_HOME(全局生效)
方法一:写入/etc/profile(推荐,对所有用户有效)
① 用vim编辑系统级配置文件:
sudo vim /etc/profile
② 将光标移至文件末尾,按i进入插入模式,添加两行(把下面/your/actual/path替换成上一步复制的真实路径):
export JAVA_HOME=/your/actual/path
export PATH=$JAVA_HOME/bin:$PATH
③ 按Esc退出插入模式,输入:wq保存退出。
④ 立即加载新配置:
source /etc/profile
方法二:使用profile.d独立脚本(更规范,便于维护)
sudo tee /etc/profile.d/java.sh export JAVA_HOME=/your/actual/path
export PATH=$JAVA_HOME/bin:$PATH
EOF
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
两种方法效果相同,但profile.d方式避免污染主配置文件,升级系统时不易被覆盖。
验证环境变量是否永久生效
关闭当前终端,新开一个shell窗口。
依次执行:
echo $JAVA_HOME
which java
java -version
前三条命令输出必须全部指向同一路径,且java -version结果中包含“11.0.”字样。
如果echo $JAVA_HOME为空,说明source未执行或写错路径;如果which java返回/usr/bin/java,说明PATH未正确前置,需检查export PATH语句顺序。










