CentOS 7.X 多版本 JDK 管理

1. 安装多个 JDK 版本

手动安装方式
# 下载并解压不同版本的 JDK
tar -zxvf jdk-8uXXX-linux-x64.tar.gz -C /usr/local/java/
tar -zxvf jdk-11.XXX_linux-x64_bin.tar.gz -C /usr/local/java/
tar -zxvf jdk-17.XXX_linux-x64_bin.tar.gz -C /usr/local/java/
目录结构示例
/usr/local/java/
├── jdk1.8.0_XXX
├── jdk-11.XXX
└── jdk-17.XXX

2. 配置环境变量管理

方法一:修改 /etc/profile 全局配置
# 编辑全局环境变量文件
vim /etc/profile

# 添加以下内容
export JAVA_HOME_JDK8=/usr/local/java/jdk1.8.0_XXX
export JAVA_HOME_JDK11=/usr/local/java/jdk-11.XXX
export JAVA_HOME_JDK17=/usr/local/java/jdk-17.XXX

# 设置默认 JDK
export JAVA_HOME=$JAVA_HOME_JDK8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
方法二:使用 alternatives 系统管理
# 安装 alternatives 条目
sudo alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_XXX/bin/java 100
sudo alternatives --install /usr/bin/java java /usr/local/java/jdk-11.XXX/bin/java 200
sudo alternatives --install /usr/bin/java java /usr/local/java/jdk-17.XXX/bin/java 300

# 配置 javac
sudo alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.8.0_XXX/bin/javac 100
sudo alternatives --install /usr/bin/javac javac /usr/local/java/jdk-11.XXX/bin/javac 200
sudo alternatives --install /usr/bin/javac javac /usr/local/java/jdk-17.XXX/bin/javac 300

3. 使用别名快速切换 JDK 版本

~/.bashrc~/.bashrc 中添加别名
# 编辑用户配置文件
vim ~/.bashrc

# 添加 JDK 切换别名
alias jdk8='export JAVA_HOME=/usr/local/java/jdk1.8.0_XXX && export PATH=$JAVA_HOME/bin:$PATH && java -version'
alias jdk11='export JAVA_HOME=/usr/local/java/jdk-11.XXX && export PATH=$JAVA_HOME/bin:$PATH && java -version'
alias jdk17='export JAVA_HOME=/usr/local/java/jdk-17.XXX && export PATH=$JAVA_HOME/bin:$PATH && java -version'

# 重新加载配置
source ~/.bashrc

4. 使用 alternatives 管理 JDK

查看当前配置
# 查看 Java alternatives 配置
sudo alternatives --config java

# 查看 Javac alternatives 配置
sudo alternatives --config javac
手动切换版本
# 交互式选择 JDK 版本
sudo alternatives --config java
sudo alternatives --config javac

5. 参数解析说明

alternatives 命令参数:
  • --install:安装一个新的 alternatives 项
  • --config:配置当前使用的 alternatives 项
  • --display:显示 alternatives 项的详细信息
  • --remove:移除一个 alternatives 项
配置项说明:
  • /usr/bin/java:符号链接路径
  • java:alternatives 组名
  • /usr/local/java/jdk1.8.0_XXX/bin/java:实际程序路径
  • 100:优先级,数字越大优先级越高

6. 实际使用案例

案例一:快速切换 JDK 版本
# 使用别名切换到 JDK 8
jdk8
# 输出:java version "1.8.0_XXX"

# 使用别名切换到 JDK 11
jdk11
# 输出:openjdk version "11.XXX"
案例二:为特定应用指定 JDK 版本
# 创建特定应用的启动脚本
#!/bin/bash
export JAVA_HOME=/usr/local/java/jdk-17.XXX
export PATH=$JAVA_HOME/bin:$PATH
java -jar myapp.jar
案例三:验证当前 JDK 版本
# 查看 Java 版本
java -version

# 查看 Java 编译器版本
javac -version

# 查看 JAVA_HOME 路径
echo $JAVA_HOME

通过以上配置,可以在 CentOS 7.X 系统中灵活管理多个 JDK 版本,并通过别名或 alternatives 系统快速切换使用。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐