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 java
sdk install java 17.0.2-open
sdk use java 17.0.2-open
sdk default java 17.0.2-open
以上方法可根據需求選擇,update-alternatives
適合系統級統一管理,環境變量/alias適合用戶臨時切換,SDKMAN則適合需要頻繁切換版本的場景。