CentOS实现Java多版本共存主要有以下两种方法:
update-alternatives工具(系统级管理)安装多个Java版本
通过yum安装不同版本的OpenJDK,例如:
sudo yum install java-1.8.0-openjdk-devel # 安装Java 8 sudo yum install java-11-openjdk-devel # 安装Java 11 sudo yum install java-17-openjdk-devel # 安装Java 17 配置版本切换
使用update-alternatives注册各版本路径并设置优先级:
sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-1.8.0-openjdk/bin/java 1 sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 2 sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk/bin/java 3 切换默认版本
执行以下命令选择默认版本(输入对应编号):
sudo alternatives --config java 验证版本
通过java -version确认当前生效的Java版本。
编辑配置文件
在~/.bashrc或~/.bash_profile中添加alias(以Java 8、11为例):
alias java8='export JAVA_HOME=/usr/local/java/jdk1.8.0_202 && export PATH=$JAVA_HOME/bin:$PATH' alias java11='export JAVA_HOME=/usr/local/java/jdk-11.0.191 && export PATH=$JAVA_HOME/bin:$PATH' 使配置生效
执行source ~/.bashrc使alias生效。
临时切换版本
在终端中直接输入java8或java11即可临时切换版本。
安装SDKMAN
curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" 管理Java版本
sdk list javasdk install java 17.0.2-opensdk use java 17.0.2-opensdk default java 17.0.2-open以上方法可根据需求选择,update-alternatives适合系统级统一管理,环境变量/alias适合用户临时切换,SDKMAN则适合需要频繁切换版本的场景。