Windows系統(tǒng)下JDK1.8與JDK11版本切換超詳細(xì)教程
一、JDK生效原理
想必大家都在為如何流暢的切換JDK版本問題而來,那么在此篇文章開始之前,首先我們來思考一下這樣一個問題:系統(tǒng)是如何使得我們安裝的JDK生效的?
聰明的你一定想到了,是的,要想使得我們安裝的JDK生效,我們需要配置它的環(huán)境變量,讓系統(tǒng)知道我們已經(jīng)安裝了JDK并且已經(jīng)可以使用。
我們大家一般配置環(huán)境變量都是先新建一個系統(tǒng)變量JAVA_HOME,而JAVA_HOME所表示的路徑為我們安裝jdk的路徑(不包含bin目錄)即:

之后我們會在Path系統(tǒng)變量中新建環(huán)境變量%JAVA_HOME%\bin即:

那么這些環(huán)境變量和JDK生效有什么關(guān)系呢?我們來看bin目錄下到底有什么內(nèi)容:
jdk的bin目錄:我們看到了熟悉的字眼,沒錯,就是java和javac命令,它們就是我們每次配置完JDK驗(yàn)證JDK成功的命令,其中javac命令還可以使我們編寫的Java文件編譯成字節(jié)碼文件(.class文件)

jdk自帶的jre的bin目錄:

那么計算機(jī)如何才能準(zhǔn)確的調(diào)用這些命令呢?當(dāng)然是通過Path環(huán)境變量來進(jìn)行查找,Path環(huán)境變量的值是一系列路徑,Windows操作系統(tǒng)將在此一系列路徑中查找命令,若能找到則可執(zhí)行這些命令,即可以說Windows是通過JAVA_HOME來找到JDK和JRE的,并且當(dāng)前JDK8以及JDK8之后已經(jīng)集成了JRE,因此我們在配置JRE時無需再配置CLASSPATH以及配置%JAVA_HOME%\jre\bin環(huán)境變量。
那說了這么多,這些和JDK版本的切換有什么關(guān)系呢?接下來我們用圖來表示。

我們當(dāng)前有一個Java文件,若當(dāng)前它使用的是JDK8編譯的,而我們想要使用JDK11來編譯它,怎么辦呢,最簡單的方法就是將JAVA_HOME的內(nèi)容改為JDK11,具體操作如下:
二、安裝配置JDK11
筆者現(xiàn)在安裝一個JDK11(筆者已經(jīng)安裝有JDK8)
點(diǎn)擊下一步

配置好路徑后,點(diǎn)擊下一步

等待安裝

點(diǎn)擊關(guān)閉

安裝成功后,筆者的所有JDK文件如下圖所示:

點(diǎn)擊進(jìn)入jdk-11中,我們看到JDK11已經(jīng)完全集成了JRE,已經(jīng)完全看不到JRE的身影

三、切換JDK11版本
若我們想要切換JDK11版本,我們需要修改JAVA_HOME的JDK路徑,具體步驟如下圖所示:
修改JAVA_HOME的JDK路徑為JDK11的路徑:

四、查看切換JDK11版本是否成功
之后,我們查看JDK版本是否切換成功:輸入java -version命令查看JDK版本
java -version

我們發(fā)現(xiàn)JDK11版本已經(jīng)切換成功!??!
五、再次切換至JDK8版本
根據(jù)以上步驟,我們需要修改JAVA_HOME的JDK路徑,具體步驟如下圖所示:
修改JAVA_HOME的JDK路徑為JDK8的路徑:

六、查看切換JDK8版本是否成功
之后全部保存后,我們查看JDK版本是否切換成功:輸入java -version命令查看JDK版本
java -version

我們發(fā)現(xiàn),JDK的版本并沒有被切換回來?。?!
原因:這是為什么呢?這是因?yàn)楫?dāng)我們安裝并配置好JDK11之后它會自動生成一個環(huán)境變量(此變量我們看不到),此環(huán)境變量優(yōu)先級較高,導(dǎo)致我們在切換回JDK8后系統(tǒng)會先讀取到JDK11生成的環(huán)境變量,而不會讀取到JDK8的環(huán)境變量。
解決辦法:我們需要將%JAVA_HOME%\bin上移至環(huán)境變量最高處(賦予它最高的優(yōu)先級)

之后,我們再次查看JDK版本是否切換成功:輸入java -version命令查看JDK版本

我們看到已然切換成功?。?!
總結(jié)
到此這篇關(guān)于Windows系統(tǒng)下JDK1.8與JDK11版本切換的文章就介紹到這了,更多相關(guān)JDK1.8與JDK11版本切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring實(shí)戰(zhàn)之緩存使用condition操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之緩存使用condition操作,結(jié)合實(shí)例形式分析了Spring緩存使用condition具體配置、屬性、領(lǐng)域模型等相關(guān)操作技巧與注意事項,需要的朋友可以參考下2020-01-01
SpringBoot+Thymeleaf實(shí)現(xiàn)生成PDF文檔
Thymeleaf是一個現(xiàn)代的服務(wù)器端?Java?模板引擎,適用于?Web?和獨(dú)立環(huán)境。Thymeleaf?的主要目標(biāo)是為您的開發(fā)工作流程帶來優(yōu)雅的自然模板,本文就來用它實(shí)現(xiàn)生成PDF,感興趣的可以了解一下2022-09-09

