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 之后,还需要配置环境变量,这样系统才能在任何路径下识别 java 和 javac 命令。
编辑配置文件
使用 vi 或 vim 打开系统环境变量配置文件:
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” 怎么办?
这通常是环境变量没有正确配置或没有生效导致的。请按以下步骤排查:
- 确认
/etc/profile文件中的JAVA_HOME路径是否正确 - 确认是否执行了
source /etc/profile - 使用
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 javaQ5:CentOS 7 能装 JDK 11 或 JDK 17 吗?
完全可以。安装流程和本文介绍的基本一致,只需要下载对应版本的 RPM 包,修改 JAVA_HOME 路径即可。不过要注意,部分老项目可能不兼容高版本 JDK,升级前请做好测试。
总结
本文完整介绍了在 CentOS 7 系统上安装 Oracle JDK 8 的全过程,包括以下几个关键步骤:
- 查看系统自带的 OpenJDK 包
- 卸载 OpenJDK,为安装 Oracle JDK 扫清障碍
- 安装 Oracle JDK 8 的 RPM 包
- 配置
JAVA_HOME、CLASSPATH、PATH三个环境变量 - 验证安装结果,确保
java和javac命令可用
整个过程并不复杂,只要按照步骤操作,一般几分钟就能完成。如果你在生产环境部署 Java 应用,正确配置 JDK 是第一步也是最关键的一步。
如果大家在 CentOS 7 安装 JDK 的过程中遇到了其他问题,或者对环境变量配置还有不清楚的地方,欢迎在评论区留言交流,我会尽量帮大家解答~~~
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/centos7-install-jdk/
备用原文链接: https://blog.fiveyoboy.com/articles/centos7-install-jdk/