CentOS安装配置多版本JDK详细步骤记录

 更新时间:2025年05月08日 10:07:33   作者:恶露发  
这篇文章主要给大家介绍了关于CentOS安装配置多版本JDK的详细步骤,分别是使用update-alternatives工具进行全局切换和通过设置环境变量和alias进行临时切换,每种方法都提供了详细步骤和示例代码,需要的朋友可以参考下

1. 下载 JDK

你可以从 Oracle 官方网站或者 OpenJDK 的相关源下载不同版本的 JDK 安装包。以 JDK 8 和 JDK 21 为例,假设你已经将它们下载到了本地。

2. 安装 JDK

创建一个用于存放 JDK 的目录,然后将下载的 JDK 安装包解压到该目录。

# 创建目录
sudo mkdir -p /usr/local/java
# 解压JDK 8
sudo tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/java
# 解压JDK 21
sudo tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/java

3. 配置环境变量

下面介绍两种常用的方式,在 CentOS 10 系统上安装并管理多个 JDK 版本,一种是使用 update‐alternatives 工具进行全局切换,另一种则是通过设置环境变量和 alias 来临时切换。下面提供详细步骤:

方法一:使用 update-alternatives 全局管理

这种方式可以在系统级别统一设置默认使用哪个 JDK。每个 JDK 都注册一个优先级,然后通过命令来切换默认版本。

  • 注册各个JDK
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_xxx/bin/java 1
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk-11.0_xxx/bin/java 2
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk-17.0_xxx/bin/java 3

sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_xxx/bin/javac 1
sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk-11.0_xxx/bin/javac 2
sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk-17.0_xxx/bin/javac 3

其中“xxx”部分请替换为具体的版本号路径。

  • 切换默认JDK

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    

    系统会列出已注册的各个版本,输入对应编号即可切换。

  • 验证版本

    执行以下命令确认当前默认版本:

    java -version
    javac -version
    

方法二:通过环境变量和 alias 切换(用户级别)

这种方式适用于需要临时切换 JDK 版本或者仅对当前用户生效的情况。

  • 编辑环境变量配置文件修改 /etc/profile(全局)或 ~/.bash_profile(当前用户)文件,追加如下内容(示例中配置了三个 alias 命令):

    编辑完成后,记得保存退出(例如,在 vim 中按 Esc 后输入 :wq 保存并退出;在 nano 中按 Ctrl+O 保存,然后 Ctrl+X 退出)。

    sudo vi /etc/profile
    sudo nano /etc/profile
    
    vim ~/.bash_profile
    nano ~/.bash_profile
    
    ## 默认指向 JDK 8
    export JAVA_HOME=/usr/local/java/jdk1.8.0_202
    export PATH=$JAVA_HOME/bin:$PATH
    
    alias java8='export JAVA_HOME=/usr/local/java/jdk1.8.0_202 && export PATH=$JAVA_HOME/bin:$PATH && java -version'
    alias java21='export JAVA_HOME=/usr/local/java/jdk-21.0.6 && export PATH=$JAVA_HOME/bin:$PATH && java -version'
    ## alias java17='export JAVA_HOME=/usr/local/java/jdk-17.0_xxx && export PATH=$JAVA_HOME/bin:$PATH && java -version'
    

    保存文件后,让配置生效:

    source /etc/profile   
    # 或者 
    source ~/.bash_profile
    
  • 切换 JDK 版本

    当你需要切换到某个版本时,只需执行相应 alias 命令,例如:

    java21
    
  • 验证切换效果运行:

    java -version
    

    以确认当前正在使用所设置的 JDK。

  • 持久化配置:当前的配置只在当前终端会话中生效。若希望每次开启终端都能使用这些配置,需要把它们添加到 shell 的配置文件中,像 ~/.bashrc(针对 Bash shell)或者 ~/.zshrc(针对 Zsh shell)。添加配置的命令示例如下:

    echo 'export JAVA_HOME=/usr/local/java/jdk1.8.0_202' >> ~/.bashrc
    echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
    echo 'alias java8='export JAVA_HOME=/usr/local/java/jdk1.8.0_202 && export PATH=$JAVA_HOME/bin:$PATH && java -version'' >> ~/.bashrc
    echo 'alias java21='export JAVA_HOME=/usr/local/java/jdk-21.0.6 && export PATH=$JAVA_HOME/bin:$PATH && java -version'' >> ~/.bashrc
    

    添加完成后,执行以下命令让配置生效:

    source ~/.bashrc
    
    • 错误处理缺失:当前配置没有对目录不存在或者 JDK 版本不可用的情况进行错误处理。你可以在 alias 命令里添加一些错误检查逻辑,示例如下:
    alias java8='if [ -d "/usr/local/java/jdk1.8.0_202" ]; then export JAVA_HOME=/usr/local/java/jdk1.8.0_202 && export PATH=$JAVA_HOME/bin:$PATH && java -version; else echo "JDK 8 目录不存在"; fi'
    alias java21='if [ -d "/usr/local/java/jdk-21.0.6" ]; then export JAVA_HOME=/usr
    
  • update-alternatives 方法适合系统级别的 JDK 管理,适用于需要在不同项目间统一切换默认 JDK 的场景。

  • 环境变量和 alias 方法适合用户临时切换,或者针对不同需求(如开发与测试)灵活设置。

总结 

到此这篇关于CentOS安装配置多版本JDK的文章就介绍到这了,更多相关CentOS安装配置多版本JDK内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javaWEB实现相册管理的简单功能

    javaWEB实现相册管理的简单功能

    这篇文章主要介绍了javaWEB实现相册管理的简单功能,包括图片的上传、统一浏览、单个下载、单个删除,还有一个功能只能删除自己上传的文件,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 16 个有用的的Java工具类(小结)

    16 个有用的的Java工具类(小结)

    这篇文章主要介绍了16 个有用的的Java工具类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • java封装的概念和实现方法示例

    java封装的概念和实现方法示例

    这篇文章主要介绍了java封装的概念和实现方法,结合实例形式详细分析了java封装的概念、原理及相关使用技巧,需要的朋友可以参考下
    2019-11-11
  • Spring JDBCTemplate原理及使用实例

    Spring JDBCTemplate原理及使用实例

    这篇文章主要介绍了Spring JDBCTemplate原理及使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Spring Boot 中PageHelper 插件使用配置思路详解

    Spring Boot 中PageHelper 插件使用配置思路详解

    这篇文章主要介绍了Spring Boot 中PageHelper 插件使用配置及实现思路,通过引入myabtis和pagehelper依赖,在yml中配置mybatis扫描和实体类,具体实现方法跟随小编一起看看吧
    2021-08-08
  • Java StringBuffer类与StringBuilder类用法实例小结

    Java StringBuffer类与StringBuilder类用法实例小结

    这篇文章主要介绍了Java StringBuffer类与StringBuilder类用法,结合实例形式总结分析了Java StringBuffer类与StringBuilder类的功能、原理及添加、删除、替换、截取等操作实现技巧,需要的朋友可以参考下
    2019-03-03
  • 解析Java的JVM以及类与对象的概念

    解析Java的JVM以及类与对象的概念

    这篇文章主要介绍了解析Java的JVM以及类与对象的概念,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • Spring Boot中的 6 种API请求参数读取方式示例详解

    Spring Boot中的 6 种API请求参数读取方式示例详解

    使用Spring Boot开发API的时候,读取请求参数是服务端编码中最基本的一项操作,Spring Boot中也提供了多种机制来满足不同的API设计要求,这篇文章主要介绍了Spring Boot中的 6 种API请求参数读取方式示例详解,需要的朋友可以参考下
    2024-05-05
  • 浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别

    浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别

    下面小编就为大家带来一篇浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Java Exception异常全方面分析

    Java Exception异常全方面分析

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等
    2022-03-03

最新评论