CentOS如何安装多个JDK并设置系统默认版本?

在CentOS系统中,管理多个Java开发工具包(JDK)版本是一项常见且重要的任务,不同的应用程序或项目可能依赖于特定的JDK版本,能够干净、高效地在不同版本之间切换至关重要,本文将详细介绍如何在CentOS上安装、配置并切换JDK版本,确保系统环境的整洁与稳定。

CentOS如何安装多个JDK并设置系统默认版本?

准备工作:检查当前环境

在进行任何更改之前,首先需要了解当前系统的JDK安装情况,打开终端,执行以下命令:

java -version

此命令会显示当前系统默认使用的JDK版本信息,如果尚未安装JDK,系统会提示命令未找到,检查已通过yum或dnf安装的Java相关软件包:

yum list installed | grep java

这将列出所有已安装的、名称中包含“java”的软件包,帮助你了解现有的Java环境。

安装新的JDK版本

CentOS提供了通过其软件包管理器yum(或在较新版本中为dnf)安装OpenJDK的便捷方式,OpenJDK是Java平台的开源实现,足以满足绝大多数开发和生产环境的需求。

以安装OpenJDK 11为例,执行以下命令:

sudo yum install java-11-openjdk java-11-openjdk-devel

这里,java-11-openjdk包包含了Java运行时环境(JRE),而java-11-openjdk-devel则包含了编译器和开发工具(JDK),对于开发工作来说,两者都是必需的,你可以将11替换为其他需要的版本号,如8、17等,前提是CentOS的软件仓库中提供了该版本。

使用alternatives管理多版本

CentOS提供了一个名为alternatives的强大工具,用于管理同一个软件的多个版本,它能自动创建和维护符号链接,让用户可以轻松地在不同版本间切换,而无需手动修改环境变量。

注册JDK到alternatives系统

通过yum安装的JDK会自动注册到alternatives中,但如果你是手动安装的(从Oracle官网下载tar.gz包解压),则需要手动注册,假设你将JDK 17解压到了/usr/lib/jvm/jdk-17目录下,注册命令如下:

CentOS如何安装多个JDK并设置系统默认版本?

sudo alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17/bin/java 2 
 --slave /usr/bin/javac javac /usr/lib/jvm/jdk-17/bin/javac 
 --slave /usr/bin/jar jar /usr/lib/jvm/jdk-17/bin/jar
  • --install:告诉alternatives我们要安装一个新的选项。
  • /usr/bin/java:公共链接的路径。
  • java:这个链接所属的“家族”名称。
  • /usr/lib/jvm/jdk-17/bin/java:这个选项的实际程序路径。
  • 2:优先级,数字越大,优先级越高,在自动选择时,优先级高的版本会被默认使用。
  • --slave:指定与主程序关联的从属程序,如javac、jar等,确保切换主程序时,这些工具也一并切换。

配置并切换JDK版本

一旦所有JDK版本都已注册到alternatives系统,就可以使用以下命令进行交互式切换:

sudo alternatives --config java

执行后,系统会列出所有已注册的Java版本,并要求你输入对应的数字来选择默认版本。

共有 3 个程序提供“java”。
  选择    命令
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64/jre/bin/java)
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.20.0.8-2.el7.x86_64/bin/java)
   3           /usr/lib/jvm/jdk-17/bin/java
按 Enter 来保存当前选择[+],或键入选择的数字:

输入你希望切换到的版本前的数字,然后按回车键即可,标记表示当前正在使用的版本。

配置JAVA_HOME环境变量

仅仅切换java命令的链接是不够的,许多Java应用程序和构建工具(如Maven、Tomcat)依赖于JAVA_HOME环境变量来找到JDK的安装目录。

一个最佳实践是,将JAVA_HOME动态设置为alternatives当前指向的JDK路径,这样,每次使用alternatives切换版本后,JAVA_HOME也会自动指向正确的位置。

创建一个新的环境变量配置文件:

sudo vi /etc/profile.d/java.sh

在文件中添加以下内容:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

保存并退出编辑器,让配置立即生效:

CentOS如何安装多个JDK并设置系统默认版本?

source /etc/profile.d/java.sh

或者,你也可以重新登录系统,无论何时使用alternatives切换JDK版本,JAVA_HOME都会自动更新,你可以通过echo $JAVA_HOME来验证。

验证最终结果

完成所有步骤后,再次执行验证命令,确保所有配置都已生效:

java -version
javac -version
echo $JAVA_HOME

这三个命令的输出应该一致,都指向你刚刚选择的新JDK版本,至此,你已经在CentOS上成功、干净地完成了JDK版本的切换。


相关问答FAQs

问题1:我执行了 alternatives --config java,但是没有看到我新安装的JDK选项,怎么办?

解答: 这种情况通常意味着你新安装的JDK版本没有被正确地注册到alternatives系统中,如果你是通过yum安装的,请检查安装过程是否成功完成,如果你是手动下载并解压安装的JDK,那么你必须手动执行alternatives --install命令将其注册,请参考上文“注册JDK到alternatives系统”部分,确保命令路径和参数正确无误,注册成功后,再次运行alternatives --config java,新版本就会出现在选项列表中。

问题2:更改了JDK版本后,为什么 echo $JAVA_HOME 显示的还是旧路径?

解答: 这是因为你的Shell会话在启动时加载了环境变量配置,在你更改alternatives配置后,当前已打开的终端窗口中的环境变量并未自动更新,要解决这个问题,你有两个选择:一是关闭当前终端并重新打开一个新的,或者直接注销后重新登录系统;二是手动重新加载环境变量配置文件,例如执行 source /etc/profile.d/java.sh(如果你按照本文推荐的方式设置了JAVA_HOME),如果你是直接在~/.bashrc或/etc/profile中设置的静态路径,那么每次切换JDK版本后,你都需要手动去修改这个路径,这也是为什么推荐使用动态JAVA_HOME设置的原因。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

赞 (0)
爱国的头像爱国
URL地址里为什么不能包含中文字符呢?
上一篇 2025-10-08 08:43
CentOS7.0如何用systemctl设置服务开机自启?
下一篇 2025-10-08 08:46

相关推荐

  • CentOS服务器引导失败开不了机,如何进入救援模式修复?

    当您面对一台无法引导的CentOS服务器时,不必惊慌,这通常是系统管理员职业生涯中会遇到的一个常见挑战,问题根源可能涉及从简单的配置错误到复杂的硬件故障等多个层面,解决此问题的关键在于系统性地诊断,并采取恰当的修复措施,本文将引导您一步步排查并解决CentOS无法引导的问题,第一步:观察与定位故障阶段修复任何问……

    2025-10-13
    0027
  • CentOS FTP用户登录失败如何排查解决?

    在 CentOS 系统中配置 FTP 服务以实现用户安全登录,是一项常见且重要的系统管理任务,本文将详细介绍从安装、配置到测试的完整流程,重点在于 vsftpd(Very Secure FTP Daemon)服务,因其安全性与稳定性而被广泛采用,安装与基础配置我们需要在 CentOS 系统上安装 vsftpd……

    2025-10-01
    006
  • CentOS如何为新硬盘创建data分区并设置开机挂载?

    在管理CentOS服务器时,将用户数据与操作系统分离是一项至关重要的最佳实践,通过创建一个独立的data分区,您可以轻松备份数据、在重装系统时保留个人文件,并更有效地管理磁盘空间,本文将详细介绍在CentOS中创建并挂载数据分区的完整流程,准备工作:识别磁盘与安全须知在开始任何磁盘操作之前,必须明确目标磁盘,并……

    2025-10-10
    0012
  • 如何确保已备案的网站或APP在服务器建设中遵循合规性要求?

    服务器建设网站需要选择合适的服务器硬件和软件,配置网络环境,安装网站运行所需的操作系统、数据库和Web服务器软件。对于已备案的网站或APP,如果建设不合规,可能会面临法律责任和处罚。必须确保遵守相关法律法规,保障网站的合法合规运营。

    2024-08-02
    0010

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信