在CentOS中安装JDK需选对方式(yum/dnf优先)、装对版本(如java-17-openjdk-devel)、配对路径(JAVA_HOME等环境变量);dnf/yum自动处理依赖与软链接,手动安装须卸载旧包、规范解压、正确配置全局环境变量。

在 CentOS 中安装 JDK,核心就三件事:选对方式、装对版本、配对路径。别被各种报错吓住,其实只要避开几个常见坑,一次就能跑通。
优先用包管理器安装(推荐新手)
CentOS 8 及以后默认用 `dnf`,旧版(如 CentOS 7)用 `yum`。这种方式省心,自动注册 `alternatives`、建好软链接、PATH 也顺带搞定。安装 OpenJDK 17(LTS 推荐):
# CentOS 8/9 sudo dnf install -y java-17-openjdk-devel <h1>CentOS 7</h1><p>sudo yum install -y java-17-openjdk-devel
验证是否成功:
java -version javac -version
如果提示找不到命令,先确认是否启用了 CRB 仓库(CentOS 8/9):
sudo dnf config-manager --set-enabled crb
注意:一定要装 devel 版本,它才包含 javac 编译器;只装 java-17-openjdk 就只有运行环境。
手动安装(适合需要特定版本或 Oracle JDK)
适用于要装 JDK 8、JDK 11 或 Oracle 官方版等场景。关键步骤是:清理旧包、解压到规范路径、正确配置环境变量。第一步:彻底卸载系统自带 JDK(避免冲突)
rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
第二步:下载并解压(以 JDK 17 为例)
- 从华为云镜像站下载(免登录,快):
wget https://mirrors.huaweicloud.com/java/jdk-17.0.2+8/jdk-17.0.2_linux-x64_bin.tar.gz - 解压到
/usr/local/java(统一管理习惯):sudo tar -xzf jdk-17.0.2_linux-x64_bin.tar.gz -C /usr/local/java - 重命名目录便于维护:
sudo mv /usr/local/java/jdk-17.0.2 /usr/local/java/jdk17
第三步:配置全局环境变量
编辑 /etc/profile:
sudo vi /etc/profile
在文件末尾添加:
export JAVA_HOME=/usr/local/java/jdk17 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
生效配置:
source /etc/profile
验证与排错要点
装完别急着写代码,先做这几件事:
- 运行
java -version和javac -version,看输出是否一致且无报错 - 检查
JAVA_HOME是否指向真实目录:echo $JAVA_HOME - 确认
which java返回的是你刚装的路径,不是/usr/bin/java(那是系统旧包残留) - 如果新终端里命令失效,说明环境变量写到了
~/.bashrc而非/etc/profile,后者才对所有用户永久生效
常见报错直接对应原因:
-
bash: java: command not found→ PATH 没加对,或source没执行 -
Error: could not open /lib/amd64/jvm.cfg→ 架构不匹配(比如给 ARM 服务器装了 x86_64 包) - 版本显示是 OpenJDK 却想用 Oracle JDK → 没卸干净旧包,或
alternatives还在指向老路径
不复杂但容易忽略


















