在基于 Red Hat 的 Linux 发行版(如 CentOS)上,Java 开发工具包(JDK)是运行和开发 Java 应用程序的基础,使用 yum
包管理器来安装 JDK 是一种推荐且高效的方法,因为它能自动处理依赖关系,并简化了后续的更新与维护过程,本文将详细介绍如何在 CentOS 系统上通过 yum
安装、配置和管理 JDK。
准备工作:检查与清理
在开始安装之前,首先需要确认系统中是否已安装了其他版本的 Java,特别是可能存在冲突的旧版本,可以通过以下命令进行检查:
java -version
如果系统已安装 Java,此命令会显示其版本信息,还可以使用 rpm
命令查询所有已安装的 Java 相关软件包:
rpm -qa | grep java
如果查询结果中存在由其他方式(如手动解压安装)的 JDK,或者您希望卸载现有的 OpenJDK 版本,可以使用 yum remove
命令进行卸载,卸载所有 Java 1.8 相关的包:
sudo yum remove java-1.8.0-openjdk*
完成清理后,系统就准备好接收新的 JDK 安装了。
使用 Yum 安装 OpenJDK
CentOS 的默认软件源通常包含了多个版本的 OpenJDK,这是 Java 平台的开源实现,对于大多数应用场景,OpenJDK 是一个稳定且功能完备的选择。
搜索可用的 JDK 版本
可以搜索 yum
仓库中所有可用的 Java 开发包:
yum search java | grep -i openjdk
或者,更直接地列出所有 JDK 包:
yum list | grep jdk
您会看到类似 java-1.8.0-openjdk
, java-11-openjdk
, java-17-openjdk
等不同版本的包,建议选择一个长期支持(LTS)的版本,如 Java 8 (1.8), Java 11 或 Java 17。
安装指定版本的 JDK
以安装广泛使用的 Java 11 (LTS) 为例,您需要安装两个主要的包:java-11-openjdk
(包含运行时环境 JRE)和 java-11-openjdk-devel
(包含开发工具,如编译器 javac
和调试工具)。
执行以下命令进行安装:
sudo yum install java-11-openjdk java-11-openjdk-devel
yum
会自动计算依赖关系并提示您确认安装,输入 y
并回车,系统将开始下载并安装软件包,整个过程无需手动干预,非常便捷。
配置环境变量
安装完成后,为了让系统能够在任何目录下识别 java
和 javac
等命令,需要配置环境变量。JAVA_HOME
是一个非常重要的变量,许多 Java 应用程序和服务器(如 Tomcat, Maven)都会依赖它来找到 JDK 的安装路径。
确定 JDK 安装路径
通过 yum
安装的 JDK 位于 /usr/lib/jvm/
目录下,您可以使用以下命令精确找到 JAVA_HOME
应该指向的路径:
dirname $(dirname $(readlink -f $(which java)))
执行后,您可能会得到类似 /usr/lib/jvm/java-11-openjdk-11.0.xx.x-x.el7.x86_64
的输出,这个路径就是您的 JAVA_HOME
。
设置环境变量
为了对所有用户生效,推荐在 /etc/profile.d/
目录下创建一个新的 sh
脚本文件,java.sh
。
sudo vi /etc/profile.d/java.sh
在文件中添加以下内容,请将路径替换为您上一步中查到的实际路径:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.17.0.8-2.el7.x86_64 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
保存并退出编辑器,执行以下命令使配置立即生效:
source /etc/profile.d/java.sh
或者,您可以简单地注销并重新登录系统。
验证安装
配置完成后,通过几个命令来验证 JDK 是否安装并配置成功。
检查 Java 版本:
java -version
输出应显示为您刚刚安装的 OpenJDK 11 的版本信息。
检查 Java 编译器版本:
javac -version
同样,输出应为 11。
验证 JAVA_HOME
变量:
echo $JAVA_HOME
该命令应打印出您在 java.sh
文件中设置的路径,至此,JDK 已成功安装并配置完毕。
管理多版本 JDK
在某些情况下,您可能需要在系统上安装多个 JDK 版本,并根据项目需求进行切换,CentOS 提供了 alternatives
工具来优雅地管理这种情况。
当您安装了多个版本的 JDK 后,可以使用以下命令来配置系统默认使用的 Java 版本:
sudo alternatives --config java
系统会列出所有已安装的 Java 版本,并提示您输入数字来选择其中一个,选择后,java
命令的链接就会指向您选定的版本。
同样,您也需要为 javac
配置默认版本:
sudo alternatives --config javac
通过这种方式,您可以轻松地在不同 JDK 版本之间切换,而无需反复修改环境变量。
相关问答FAQs
问题1:通过 Yum 安装的 OpenJDK 和 Oracle 官方下载的 JDK 有什么区别?我该如何选择?
解答: 主要区别在于许可证和部分商业功能,OpenJDK 是 Java 平台的开源参考实现,由社区驱动,免费使用,Oracle JDK 基于 OpenJDK 构建,但包含了一些额外的商业功能(如飞行记录器 Flight Recorder),并且其商业使用在 Oracle JDK 11 之后需要付费许可,对于绝大多数开发者和服务器端应用,OpenJDK 已经完全足够,并且是更安全、无版权风险的选择,只有在您明确需要 Oracle JDK 的特定商业功能并获得相应许可时,才应考虑使用它,对于 CentOS 服务器环境,推荐使用 yum
安装的 OpenJDK。
问题2:如何完全卸载通过 Yum 安装的 JDK?
解答: 卸载过程与安装同样简单,使用 yum remove
命令移除所有相关的软件包,要卸载 Java 11,可以执行:sudo yum remove java-11-openjdk*
这里的通配符 会匹配所有以 java-11-openjdk
开头的包,包括运行时和开发包,卸载完成后,别忘了手动删除之前创建的环境变量配置文件 /etc/profile.d/java.sh
,以彻底清理系统配置,执行 source /etc/profile
或重新登录,确保环境变量被清除。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复