jdk同時(shí)安裝多個(gè)版本并自由切換的技巧總結(jié)
一、安裝不同版本的JDK
二、配置環(huán)境變量(多版本JDK)
1. 新建版本專用環(huán)境變量(用于切換)
- 操作位置:系統(tǒng)變量 > 新建
- 變量名:
JAVA_HOME_1.8變量值:JDK 8安裝路徑 - 變量名:
JAVA11_HOME_11變量值:JDK 11安裝路徑 (其他版本如 JDK 17 同理,命名規(guī)則:JAVA_HOME_<版本>) 注:路徑中禁止包含中文或空格 。
- 變量名:

2. 設(shè)置主切換變量 JAVA_HOME

- 變量名:
JAVA_HOME變量值:%JAVA_HOME_17%(默認(rèn)指向JDK 17,通過修改此值切換版本)
此變量是動(dòng)態(tài)樞紐,修改其值即可切換JDK版本。
3. 配置 CLASSPATH(可選但建議)
- 變量名:
CLASSPATH變量值:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

- 注意:開頭的
.表示當(dāng)前目錄,不可省略
4. 修改 Path 變量
- 編輯
Path變量,新增兩條(確保在頂部避免沖突):%JAVA_HOME%\bin %JAVA_HOME%\jre\bin

- 關(guān)鍵點(diǎn):
- 使用
%JAVA_HOME%引用路徑,而非直接寫死路徑 - Win10需分兩行添加,避免自動(dòng)添加引號導(dǎo)致失效
- 使用
三、多版本切換與驗(yàn)證
1. 初始驗(yàn)證
打開新CMD窗口(環(huán)境變量修改后必須重啟CMD) java -version # 應(yīng)顯示默認(rèn)版本(如JDK 8)
2. 切換版本(如切到JDK 11)
- 修改主變量
JAVA_HOME的值:- 原值:
%JAVA_HOME_8%→ 改為:%JAVA_HOME_11%
- 原值:
- 重新打開CMD,執(zhí)行:
java -version # 應(yīng)顯示默認(rèn)版本(如JDK 11)
3. 驗(yàn)證其他命令(確保全面生效)
javac -version # 檢查編譯器版本 java # 查看JVM基礎(chǔ)命令是否正常
若僅 java 生效但 javac 失敗,需檢查 Path 是否包含 %JAVA_HOME%\bin 且無多余引號
? 常見問題解決
切換后版本未更新:
- 確認(rèn)
JAVA_HOME值已修改,并重啟CMD
- 刪除系統(tǒng)沖突路徑(如
C:\Windows\System32\java.exe)
javac 命令無效:
- 檢查
Path中%JAVA_HOME%\bin是否被其他JDK路徑覆蓋。 - 確保變量值無多余分號或引號(Win10易自動(dòng)添加)
環(huán)境變量優(yōu)先級沖突:
- 系統(tǒng)變量 > 用戶變量,確保版本變量在系統(tǒng)變量中配置
通過此方案,只需修改
JAVA_HOME的指向即可實(shí)現(xiàn)多版本無縫切換,適用于開發(fā)/測試多版本兼容性場景。若需更高效切換,可參考批處理腳本自動(dòng)化方案
總結(jié)
到此這篇關(guān)于jdk同時(shí)安裝多個(gè)版本并自由切換的文章就介紹到這了,更多相關(guān)jdk安裝多版本并切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 安裝多個(gè)版本JDK后使用時(shí)的切換方法總結(jié)
- Linux安裝多個(gè)jdk版本進(jìn)行切換
- 手把手教學(xué)Win10同時(shí)安裝兩個(gè)版本的JDK并隨時(shí)切換(JDK8和JDK11)
- jdk環(huán)境變量配置切換jdk版本及安裝jdk后環(huán)境變量不生效問題解決辦法
- win10 64位系統(tǒng)中安裝多個(gè)jdk版本的切換問題及解決方法小結(jié)
- 電腦上安裝多個(gè)JDK版本時(shí)該如何自由切換(詳細(xì)圖文)
- 查找jdk安裝路徑并且切換多版本jdk的詳細(xì)步驟
- Windows同時(shí)安裝兩個(gè)版本JDK并實(shí)現(xiàn)動(dòng)態(tài)切換JAVA8或JAVA11的方法
- Windows上安裝不同版本JDK并切換使用的詳細(xì)步驟
相關(guān)文章
JAVA-NIO之Socket/ServerSocket Channel(詳解)
下面小編就為大家?guī)硪黄狫AVA-NIO之Socket/ServerSocket Channel(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
Javaweb項(xiàng)目session超時(shí)解決方案
這篇文章主要介紹了Javaweb項(xiàng)目session超時(shí)解決方案,關(guān)于解決方案分類比較明確,內(nèi)容詳細(xì),需要的朋友可以參考下。2017-09-09
lambda表達(dá)式與傳統(tǒng)接口函數(shù)實(shí)現(xiàn)方式對比詳解
這篇文章主要為大家介紹了lambda表達(dá)式與傳統(tǒng)接口函數(shù)實(shí)現(xiàn)方式對比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家度偶多進(jìn)步早日升職加薪2022-03-03
Java中的ReentrantReadWriteLock使用詳解
這篇文章主要介紹了Java中的ReentrantReadWriteLock使用詳解,ReentrantReadWriteLock是Java中的一個(gè)鎖實(shí)現(xiàn),它提供了讀寫分離的功能,這種讀寫分離的機(jī)制可以提高并發(fā)性能,特別適用于讀多寫少的場景,需要的朋友可以參考下2023-11-11
你肯定能看懂的Java IO相關(guān)知識(shí)總結(jié)
群里有大佬說想讓我寫一篇NIO,一直也沒寫,但是和同事聊天也說對Java的IO不是很清晰,因此今天就寫下Java的io,先打個(gè)基礎(chǔ),下次寫NIO,需要的朋友可以參考下2021-05-05
深入聊一聊springboot項(xiàng)目全局異常處理那些事兒
最近在做項(xiàng)目時(shí)需要對異常進(jìn)行全局統(tǒng)一處理,所以下面這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目全局異常處理那些事兒,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01
java代碼規(guī)范之不合理命名與重復(fù)代碼示例詳解
這篇文章主要為大家介紹了java代碼規(guī)范之不合理命名與重復(fù)代碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

