目录

CentOS 7 安装 JDK 完整教程:卸载 OpenJDK 并配置 Oracle JDK 环境变量

前言

CentOS 7 作为企业级 Linux 发行版,在服务器领域应用非常广泛。很多 Java 项目都部署在 CentOS 7 上运行,因此正确安装和配置 JDK 是每位后端开发者或运维人员必须掌握的基本技能。

CentOS 7 默认预装了 OpenJDK,但在实际生产环境中,不少团队更倾向于使用 Oracle JDK,因为它在某些场景下的兼容性和性能表现更好。本文将从零开始,一步步带你完成 CentOS 7 上卸载 OpenJDK 并安装 Oracle JDK 8 的全过程,每一步都附有完整的命令和说明。

准备工作

在正式开始之前,请确认以下几点:

  • 你已经拥有一台 CentOS 7 系统的服务器(物理机或虚拟机均可)
  • 拥有 root 用户权限,或者可以使用 sudo 提权
  • 已经下载好 Oracle JDK 8 的 RPM 安装包(可以从 Oracle 官网获取)
  • 能够通过 SSH 工具(如 Xshell、Terminal 等)连接到服务器

第一步:查看系统自带的 JDK

CentOS 7 安装完成后,通常会自带 OpenJDK。我们先来看看系统中目前安装了哪些 JDK 相关的包:

rpm -qa | grep jdk

执行这条命令后,终端可能会输出类似下面的内容:

java-1.7.0-openjdk-1.7.0.xxx-x.el7.x86_64
java-1.8.0-openjdk-1.8.0.xxx-x.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.xxx-x.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.xxx-x.el7.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2016g-2.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch

说明:每台服务器上的输出可能不同,这取决于你安装系统时选择的软件包组合。输出内容以你实际看到的为准。

第二步:卸载系统自带的 OpenJDK

识别哪些包需要卸载

在上一步的输出中,我们需要区分两类包:

需要卸载的包(带有 x86_64 后缀的 JDK 核心包):

java-1.7.0-openjdk-1.7.0.xxx-x.el7.x86_64
java-1.8.0-openjdk-1.8.0.xxx-x.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.xxx-x.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.xxx-x.el7.x86_64

可以保留的包(带有 noarch 后缀的辅助工具包,卸不卸载都不影响后续安装):

python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2016g-2.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch

执行卸载操作

使用 yum -y remove 命令逐个卸载上面列出的 x86_64 包。以下是示例命令,请根据你实际输出的完整包名进行替换:

yum -y remove java-1.7.0-openjdk-1.7.0.xxx-x.el7.x86_64
yum -y remove java-1.8.0-openjdk-1.8.0.xxx-x.el7.x86_64
yum -y remove java-1.8.0-openjdk-headless-1.8.0.xxx-x.el7.x86_64
yum -y remove java-1.7.0-openjdk-headless-1.7.0.xxx-x.el7.x86_64

提示:如果你想一次性卸载所有 OpenJDK 相关的包,也可以使用通配符:

yum -y remove java-*-openjdk*

这种方式更加高效,推荐在包名较多的时候使用。

确认卸载结果

卸载完成后,运行以下命令确认 OpenJDK 已经被成功移除:

java -version

如果输出类似 bash: java: command not found,说明卸载成功了。

第三步:安装 Oracle JDK 8

上传 RPM 安装包

首先,你需要把从 Oracle 官网下载好的 JDK RPM 安装包上传到服务器上。可以使用 scp 或其他文件传输工具。建议将安装包放在 /usr/local/src/ 目录下,便于管理:

cd /usr/local/src/

执行安装命令

进入安装包所在目录后,使用 rpm 命令进行安装:

rpm -ivh jdk-8u91-linux-x64.rpm

参数说明:

参数 含义
-i 安装(install)
-v 显示详细安装过程(verbose)
-h 显示安装进度条(hash)

安装过程一般只需要几秒钟,等待命令执行完毕即可。默认情况下,JDK 会被安装到 /usr/java/ 目录下。

第四步:配置 JAVA_HOME 环境变量

安装好 JDK 之后,还需要配置环境变量,这样系统才能在任何路径下识别 javajavac 命令。

编辑配置文件

使用 vivim 打开系统环境变量配置文件:

vi /etc/profile

写入环境变量

在文件末尾添加以下内容:

# -------- JDK Config --------
export JAVA_HOME=/usr/java/jdk1.8.0_91
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin

各变量的作用说明:

变量名 作用
JAVA_HOME 指定 JDK 的安装根目录
CLASSPATH 指定 Java 类库的搜索路径,编译和运行时需要用到
PATH 将 JDK 的 bin 目录加入系统路径,方便在任意位置执行 Java 命令

注意JAVA_HOME 的路径要和你实际安装的 JDK 版本目录一致。如果你安装的是其他版本,请相应修改路径。可以通过 ls /usr/java/ 查看实际目录名称。

使配置立即生效

保存文件后,执行以下命令让配置立即生效,无需重启系统:

source /etc/profile

第五步:验证安装是否成功

配置完成后,分别运行以下两条命令来验证 JDK 是否安装成功:

检查编译器:

javac -version

正常情况下会输出:

javac 1.8.0_91

检查运行时版本:

java -version

正常情况下会输出:

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

如果两条命令都能正确输出版本信息,恭喜你,JDK 安装和环境变量配置都已经完成了。

常见问题

Q1:执行 java -version 提示 “command not found” 怎么办?

这通常是环境变量没有正确配置或没有生效导致的。请按以下步骤排查:

  1. 确认 /etc/profile 文件中的 JAVA_HOME 路径是否正确
  2. 确认是否执行了 source /etc/profile
  3. 使用 echo $JAVA_HOME 查看变量是否有值输出

Q2:安装 RPM 包时提示依赖冲突怎么办?

如果在安装 Oracle JDK 时提示与已有的 OpenJDK 存在冲突,说明旧版本没有完全卸载干净。请回到第二步,使用 rpm -qa | grep jdk 再次检查,把残留的包全部卸载后重试。

Q3:CLASSPATH 一定要配置吗?

在 JDK 1.5 及更高版本中,CLASSPATH 的配置已经不是必须的了。JDK 会自动搜索当前目录和 lib 目录下的类文件。但为了兼容一些老项目或框架,建议还是配上。

Q4:可以同时安装多个版本的 JDK 吗?

可以的。你可以把不同版本的 JDK 安装到不同目录,然后通过修改 JAVA_HOME 来切换当前使用的版本。也可以借助 alternatives 命令来管理多版本切换:

alternatives --config java

Q5:CentOS 7 能装 JDK 11 或 JDK 17 吗?

完全可以。安装流程和本文介绍的基本一致,只需要下载对应版本的 RPM 包,修改 JAVA_HOME 路径即可。不过要注意,部分老项目可能不兼容高版本 JDK,升级前请做好测试。

总结

本文完整介绍了在 CentOS 7 系统上安装 Oracle JDK 8 的全过程,包括以下几个关键步骤:

  1. 查看系统自带的 OpenJDK 包
  2. 卸载 OpenJDK,为安装 Oracle JDK 扫清障碍
  3. 安装 Oracle JDK 8 的 RPM 包
  4. 配置 JAVA_HOMECLASSPATHPATH 三个环境变量
  5. 验证安装结果,确保 javajavac 命令可用

整个过程并不复杂,只要按照步骤操作,一般几分钟就能完成。如果你在生产环境部署 Java 应用,正确配置 JDK 是第一步也是最关键的一步。


如果大家在 CentOS 7 安装 JDK 的过程中遇到了其他问题,或者对环境变量配置还有不清楚的地方,欢迎在评论区留言交流,我会尽量帮大家解答~~~

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/centos7-install-jdk/

备用原文链接: https://blog.fiveyoboy.com/articles/centos7-install-jdk/