Java中jdk1.8和jdk17相互切換實戰(zhàn)步驟
前言
之前做Java項目時一直用的是jdk1.8,現(xiàn)在想下載另一個jdk版本17,并且在之后的使用中可以進行相互切換,我將jdk切換時所遇到的問題記錄下來并分享出來供大家參考。
1.環(huán)境變量中之前已經(jīng)配置好的jdk1.8。
環(huán)境變量配置如下:
步驟1

步驟2

(注:@MAVEN_HOME%\bin;是配置maven時的環(huán)境變量,如果沒有安裝maven就不用管)
步驟3

在cmd中輸入java -version為jdk1.8版本:

2.jdk1.8版本到j(luò)dk17版本的切換。
jdk17的安裝路徑,為了方便我是安裝在和jdk1.8一樣的文件目錄下:

步驟1
在環(huán)境變量中另外創(chuàng)建兩個變量名,分別為JAVA1.8_HOME和JAVA17_HOME,變量值為jdk1.8和jdk17的安裝路徑。


步驟2
修改JAVA_HOME的變量值為%JAVA17_HOME%,這個值就是之前創(chuàng)建的屬于jdk17的變量名。

點擊確定后重新打開環(huán)境變量配置(若只是點擊確定而沒有重新打開配置則看不到變化),可以看到當(dāng)修改完畢后CLASSPATH和PATH的值自動發(fā)生了變化,變成了在jdk17下的變量值。
CLASSPATH變量和PATH變量的值:


配置完成后,在cmd中輸入java -version查看jdk版本為17:

3.jdk17到j(luò)dk1.8的切換。
如果按照正常步驟來的話只需要修改JAVA_HOME的值為JAVA1.8_HOME就可以切換成jdk1.8的環(huán)境,修改過程如下:

修改后重新打開環(huán)境變量配置,CLASSPATH和PATH的值自動變成了jdk1.8的值:


此時在cmd中輸入java -version查看jdk版本卻發(fā)現(xiàn)jdk版本仍然是jdk17的版本,并沒有切換成jdk1.8:

在網(wǎng)上尋找解決方案后,發(fā)現(xiàn)需要把系統(tǒng)變量中Path的變量值C:\Program Files\Common Files\Oracle\Java\javapath和C:\Program Files (x86)\Common Files\Oracle\Java\javapath都刪掉,如圖所示:

此時在cmd中輸入java -version查看jdk版本,發(fā)現(xiàn)已經(jīng)切換到了jdk1.8版本:

最后測試了在刪除Path的變量值C:\Program Files\Common Files\Oracle\Java\javapath和C:\Program Files (x86)\Common Files\Oracle\Java\javapath后再進行上面的第2步操作后又能否切換回jdk17,結(jié)果發(fā)現(xiàn)可以成功切換成jdk17版本:

總結(jié)。
可以看出如果想要切換jdk版本,那就只需要刪除系統(tǒng)變量中PATH的值C:\Program Files\Common Files\Oracle\Java\javapath和C:\Program Files (x86)\Common Files\Oracle\Java\javapath,然后修改JAVA_HOME的值就可以隨意進行jdk的切換。之前那個沒有切換成功的原因我想是因為下載了jdk17后,原來C:\Program Files (x86)\Common Files\Oracle\Java\javapath和C:\Program Files\Common Files\Oracle\Java\javapath中的java.exe、javaw.exe、javaws.exe已經(jīng)變成了jdk17的版本,即使是修改了環(huán)境變量的值也不會切換到j(luò)dk1.8,那還不如直接在PATH變量刪除這兩個變量,而且刪除后沒有受到什么影響,也能夠進行正常切換。希望這篇文章能夠幫助到你們,謝謝!
到此這篇關(guān)于Java中jdk1.8和jdk17相互切換的文章就介紹到這了,更多相關(guān)jdk1.8和jdk17相互切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springcloud實現(xiàn)服務(wù)多版本控制的示例代碼
這篇文章主要介紹了Springcloud實現(xiàn)服務(wù)多版本控制的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
JAVA基礎(chǔ)類庫之String類,StringBuffer類和StringBuilder類
這篇文章主要介紹了Java中基礎(chǔ)類庫的String類,StringBuffer類和StringBuilder類,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2021-09-09
詳解eclipse創(chuàng)建maven項目實現(xiàn)動態(tài)web工程完整示例
這篇文章主要介紹了詳解eclipse創(chuàng)建maven項目實現(xiàn)動態(tài)web工程完整示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
Java實戰(zhàn)之火車票預(yù)訂系統(tǒng)的實現(xiàn)
這篇文章主要介紹了利用Java實現(xiàn)的火車票預(yù)訂系統(tǒng),文中用到了JSP?、Servlert、JQuery、Ajax?等技術(shù),文中示例代碼講解詳細,需要的可以參考一下2022-02-02
Java實現(xiàn)連接kubernates集群的兩種方式詳解
這篇文章主要為大家詳細介紹了Java實現(xiàn)連接kubernates集群的兩種方式,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
Kafka中的producer攔截器與consumer攔截器詳解
這篇文章主要介紹了Kafka中的producer攔截器與consumer攔截器詳解,Producer 的Interceptor使得用戶在消息發(fā)送前以及Producer回調(diào)邏輯前有機會對消息做 一些定制化需求,比如修改消息等,需要的朋友可以參考下2023-12-12
interrupt()和線程終止方式_動力節(jié)點Java學(xué)院整理
線程的thread.interrupt()方法是中斷線程,將會設(shè)置該線程的中斷狀態(tài)位,即設(shè)置為true,中斷的結(jié)果線程是死亡、還是等待新的任務(wù)或是繼續(xù)運行至下一步,就取決于這個程序本身2017-05-05

