CentOS安裝配置多版本JDK詳細(xì)步驟記錄
1. 下載 JDK
你可以從 Oracle 官方網(wǎng)站或者 OpenJDK 的相關(guān)源下載不同版本的 JDK 安裝包。以 JDK 8 和 JDK 21 為例,假設(shè)你已經(jīng)將它們下載到了本地。
2. 安裝 JDK
創(chuàng)建一個(gè)用于存放 JDK 的目錄,然后將下載的 JDK 安裝包解壓到該目錄。
# 創(chuàng)建目錄 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. 配置環(huán)境變量
下面介紹兩種常用的方式,在 CentOS 10 系統(tǒng)上安裝并管理多個(gè) JDK 版本,一種是使用 update‐alternatives 工具進(jìn)行全局切換,另一種則是通過(guò)設(shè)置環(huán)境變量和 alias 來(lái)臨時(shí)切換。下面提供詳細(xì)步驟:
方法一:使用 update-alternatives 全局管理
這種方式可以在系統(tǒng)級(jí)別統(tǒng)一設(shè)置默認(rèn)使用哪個(gè) JDK。每個(gè) JDK 都注冊(cè)一個(gè)優(yōu)先級(jí),然后通過(guò)命令來(lái)切換默認(rèn)版本。
- 注冊(cè)各個(gè)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”部分請(qǐng)?zhí)鎿Q為具體的版本號(hào)路徑。
切換默認(rèn)JDK
sudo update-alternatives --config java sudo update-alternatives --config javac
系統(tǒng)會(huì)列出已注冊(cè)的各個(gè)版本,輸入對(duì)應(yīng)編號(hào)即可切換。
驗(yàn)證版本
執(zhí)行以下命令確認(rèn)當(dāng)前默認(rèn)版本:
java -version javac -version
方法二:通過(guò)環(huán)境變量和 alias 切換(用戶(hù)級(jí)別)
這種方式適用于需要臨時(shí)切換 JDK 版本或者僅對(duì)當(dāng)前用戶(hù)生效的情況。
編輯環(huán)境變量配置文件修改
/etc/profile
(全局)或~/.bash_profile
(當(dāng)前用戶(hù))文件,追加如下內(nèi)容(示例中配置了三個(gè) alias 命令):編輯完成后,記得保存退出(例如,在 vim 中按
Esc
后輸入:wq
保存并退出;在 nano 中按Ctrl+O
保存,然后Ctrl+X
退出)。sudo vi /etc/profile sudo nano /etc/profile vim ~/.bash_profile nano ~/.bash_profile
## 默認(rèn)指向 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 版本
當(dāng)你需要切換到某個(gè)版本時(shí),只需執(zhí)行相應(yīng) alias 命令,例如:
java21
驗(yàn)證切換效果運(yùn)行:
java -version
以確認(rèn)當(dāng)前正在使用所設(shè)置的 JDK。
持久化配置:當(dāng)前的配置只在當(dāng)前終端會(huì)話中生效。若希望每次開(kāi)啟終端都能使用這些配置,需要把它們添加到 shell 的配置文件中,像
~/.bashrc
(針對(duì) Bash shell)或者~/.zshrc
(針對(duì) 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
添加完成后,執(zhí)行以下命令讓配置生效:
source ~/.bashrc
- 錯(cuò)誤處理缺失:當(dāng)前配置沒(méi)有對(duì)目錄不存在或者 JDK 版本不可用的情況進(jìn)行錯(cuò)誤處理。你可以在
alias
命令里添加一些錯(cuò)誤檢查邏輯,示例如下:
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
- 錯(cuò)誤處理缺失:當(dāng)前配置沒(méi)有對(duì)目錄不存在或者 JDK 版本不可用的情況進(jìn)行錯(cuò)誤處理。你可以在
update-alternatives 方法適合系統(tǒng)級(jí)別的 JDK 管理,適用于需要在不同項(xiàng)目間統(tǒng)一切換默認(rèn) JDK 的場(chǎng)景。
環(huán)境變量和 alias 方法適合用戶(hù)臨時(shí)切換,或者針對(duì)不同需求(如開(kāi)發(fā)與測(cè)試)靈活設(shè)置。
總結(jié)
到此這篇關(guān)于CentOS安裝配置多版本JDK的文章就介紹到這了,更多相關(guān)CentOS安裝配置多版本JDK內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javaWEB實(shí)現(xiàn)相冊(cè)管理的簡(jiǎn)單功能
這篇文章主要介紹了javaWEB實(shí)現(xiàn)相冊(cè)管理的簡(jiǎn)單功能,包括圖片的上傳、統(tǒng)一瀏覽、單個(gè)下載、單個(gè)刪除,還有一個(gè)功能只能刪除自己上傳的文件,感興趣的小伙伴們可以參考一下2015-11-1116 個(gè)有用的的Java工具類(lèi)(小結(jié))
這篇文章主要介紹了16 個(gè)有用的的Java工具類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Spring JDBCTemplate原理及使用實(shí)例
這篇文章主要介紹了Spring JDBCTemplate原理及使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Spring Boot 中PageHelper 插件使用配置思路詳解
這篇文章主要介紹了Spring Boot 中PageHelper 插件使用配置及實(shí)現(xiàn)思路,通過(guò)引入myabtis和pagehelper依賴(lài),在yml中配置mybatis掃描和實(shí)體類(lèi),具體實(shí)現(xiàn)方法跟隨小編一起看看吧2021-08-08Java StringBuffer類(lèi)與StringBuilder類(lèi)用法實(shí)例小結(jié)
這篇文章主要介紹了Java StringBuffer類(lèi)與StringBuilder類(lèi)用法,結(jié)合實(shí)例形式總結(jié)分析了Java StringBuffer類(lèi)與StringBuilder類(lèi)的功能、原理及添加、刪除、替換、截取等操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-03-03Spring Boot中的 6 種API請(qǐng)求參數(shù)讀取方式示例詳解
使用Spring Boot開(kāi)發(fā)API的時(shí)候,讀取請(qǐng)求參數(shù)是服務(wù)端編碼中最基本的一項(xiàng)操作,Spring Boot中也提供了多種機(jī)制來(lái)滿足不同的API設(shè)計(jì)要求,這篇文章主要介紹了Spring Boot中的 6 種API請(qǐng)求參數(shù)讀取方式示例詳解,需要的朋友可以參考下2024-05-05淺談Java異常的Exception e中的egetMessage()和toString()方法的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談Java異常的Exception e中的egetMessage()和toString()方法的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07