Windows系統(tǒng)下JDK1.8與JDK11版本切換超詳細(xì)教程
一、JDK生效原理
想必大家都在為如何流暢的切換JDK版本問題而來,那么在此篇文章開始之前,首先我們來思考一下這樣一個(gè)問題:系統(tǒng)是如何使得我們安裝的JDK生效的?
聰明的你一定想到了,是的,要想使得我們安裝的JDK生效,我們需要配置它的環(huán)境變量,讓系統(tǒng)知道我們已經(jīng)安裝了JDK并且已經(jīng)可以使用。
我們大家一般配置環(huán)境變量都是先新建一個(gè)系統(tǒng)變量JAVA_HOME,而JAVA_HOME所表示的路徑為我們安裝jdk的路徑(不包含bin目錄)即:
之后我們會(huì)在Path系統(tǒng)變量中新建環(huán)境變量%JAVA_HOME%\bin即:
那么這些環(huán)境變量和JDK生效有什么關(guān)系呢?我們來看bin目錄下到底有什么內(nèi)容:
jdk的bin目錄:我們看到了熟悉的字眼,沒錯(cuò),就是java和javac命令,它們就是我們每次配置完JDK驗(yàn)證JDK成功的命令,其中javac命令還可以使我們編寫的Java文件編譯成字節(jié)碼文件(.class文件)
jdk自帶的jre的bin目錄:
那么計(jì)算機(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,因此我們?cè)谂渲肑RE時(shí)無需再配置CLASSPATH以及配置%JAVA_HOME%\jre\bin環(huán)境變量。
那說了這么多,這些和JDK版本的切換有什么關(guān)系呢?接下來我們用圖來表示。
我們當(dāng)前有一個(gè)Java文件,若當(dāng)前它使用的是JDK8編譯的,而我們想要使用JDK11來編譯它,怎么辦呢,最簡(jiǎn)單的方法就是將JAVA_HOME的內(nèi)容改為JDK11,具體操作如下:
二、安裝配置JDK11
筆者現(xiàn)在安裝一個(gè)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ì)自動(dòng)生成一個(gè)環(huán)境變量(此變量我們看不到),此環(huán)境變量?jī)?yōu)先級(jí)較高,導(dǎo)致我們?cè)谇袚Q回JDK8后系統(tǒng)會(huì)先讀取到JDK11生成的環(huán)境變量,而不會(huì)讀取到JDK8的環(huán)境變量。
解決辦法:我們需要將%JAVA_HOME%\bin上移至環(huán)境變量最高處(賦予它最高的優(yōu)先級(jí))
之后,我們?cè)俅尾榭碕DK版本是否切換成功:輸入java -version命令查看JDK版本
我們看到已然切換成功!??!
總結(jié)
到此這篇關(guān)于Windows系統(tǒng)下JDK1.8與JDK11版本切換的文章就介紹到這了,更多相關(guān)JDK1.8與JDK11版本切換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中隨機(jī)數(shù)的產(chǎn)生方式與原理詳解
這篇文章主要介紹了Java中隨機(jī)數(shù)的產(chǎn)生方式與原理詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn)
本文主要介紹了SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn),,通過打印SQL語(yǔ)句可以幫助開發(fā)人員快速了解數(shù)據(jù)庫(kù)的操作情況,進(jìn)而進(jìn)行性能分析和調(diào)試,感興趣的可以了解一下2023-11-11SpringBoot2整合Drools規(guī)則引擎及案例詳解
這篇文章主要介紹了SpringBoot2整合Drools規(guī)則引擎及案例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Java?獲取Zookeeper節(jié)點(diǎn)下所有數(shù)據(jù)詳細(xì)步驟
本文介紹了如何使用Java獲取ZooKeeper節(jié)點(diǎn)下所有數(shù)據(jù),實(shí)際應(yīng)用示例中,我們演示了如何從ZooKeeper節(jié)點(diǎn)下獲取配置信息并輸出到控制臺(tái),ZooKeeper是一個(gè)開源的分布式協(xié)調(diào)服務(wù),適用于分布式系統(tǒng)中的數(shù)據(jù)同步、配置管理、命名服務(wù)等功能,感興趣的朋友一起看看吧2024-11-11Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實(shí)例解析
這篇文章主要介紹了Java面向?qū)ο缶幊蹋ǚ庋b/繼承/多態(tài))實(shí)例解析的相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10基于JAVA代碼 獲取手機(jī)基本信息(本機(jī)號(hào)碼,SDK版本,系統(tǒng)版本,手機(jī)型號(hào))
本文給大家介紹基于java代碼獲取手機(jī)基本信息,包括獲取電話管理對(duì)象、獲取手機(jī)號(hào)碼、獲取手機(jī)型號(hào)、獲取SDK版本、獲取系統(tǒng)版本等相關(guān)信息,對(duì)本文感興趣的朋友一起學(xué)習(xí)吧2015-12-12關(guān)于SpringBoot靜態(tài)資源路徑管理問題
這篇文章主要介紹了SpringBoot靜態(tài)資源路徑管理,主要包括默認(rèn)靜態(tài)資源路徑,增加靜態(tài)資源路徑前綴的相關(guān)操作,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05詳解Java ES多節(jié)點(diǎn)任務(wù)的高效分發(fā)與收集實(shí)現(xiàn)
ElasticSearch 是一個(gè)高可用開源全文檢索和分析組件。提供存儲(chǔ)服務(wù),搜索服務(wù),大數(shù)據(jù)準(zhǔn)實(shí)時(shí)分析等。一般用于提供一些提供復(fù)雜搜索的應(yīng)用2021-06-06