CentOS安装配置多版本JDK

CentOS安装配置多版本JDK

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 都注册一个优先级,然后通过命令来切换默认版本。

  1. 注册各个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”部分请替换为具体的版本号路径。

  1. 切换默认JDK

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

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

  2. 验证版本

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

    java -version
    javac -version
    

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

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

  1. 编辑环境变量配置文件
    修改 /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
    
  2. 切换 JDK 版本

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

    java21
    
  3. 验证切换效果
    运行:

    java -version
    

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

  4. 持久化配置当前的配置只在当前终端会话中生效。若希望每次开启终端都能使用这些配置,需要把它们添加到 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 方法适合用户临时切换,或者针对不同需求(如开发与测试)灵活设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值