Java?JDK的多版本共存實(shí)現(xiàn)方法
前言
學(xué)習(xí)Java最一開始就是需要做環(huán)境配置啦,安裝JDK是必不可少的。大家都知道JDK是Java開發(fā)者工具包,那么一般來說要選擇什么樣的版本來安裝呢?可以安裝多個(gè)JDK嗎?是否可以我隨時(shí)想切換哪個(gè)JDK就使用哪個(gè)呢?
下面我會(huì)主要說明如何實(shí)現(xiàn)Java JDK的多版本共存。
1. 首先簡要回復(fù)一下上面兩個(gè)問題:選擇什么樣的版本來安裝呢?可以安裝多個(gè)JDK嗎?
一般來說,企業(yè)開發(fā)習(xí)慣用JDK8老版本,因?yàn)槔习姹窘?jīng)歷了這么多年的使用,相對(duì)穩(wěn)定。新版本JDK(像現(xiàn)在已經(jīng)到了JDK17)也會(huì)有很多老版本沒有的新東西。一臺(tái)電腦可以安裝多個(gè)JDK。(一般來說不會(huì)安裝太多個(gè))
另外,安裝JDK推薦安裝LTS版(長期支持版),例如:JDK8、JDK11、JDK17...
我們可以去Oracle官網(wǎng)下載:https://www.oracle.com (具體下載安裝步驟就不詳細(xì)闡述了,如果有必要我可以出篇文章專門講講如何下載安裝)
2. 下面詳細(xì)闡述一下第三個(gè)問題:是否可以我隨時(shí)想切換哪個(gè)JDK就使用哪個(gè)呢?
答案是可以的。舉個(gè)例子,我們可以根據(jù)使用需要,按常規(guī)步驟安裝不同版本的jdk到系統(tǒng)里面,通過設(shè)置環(huán)境變量來是實(shí)現(xiàn)不同版本直接切換,就不需要進(jìn)行多次重復(fù)的安裝和卸載了。(這里拿Windows系統(tǒng)舉例)
①先安裝不同版本的jdk到系統(tǒng)里面。
我是安裝了JDK8和JDK17兩個(gè)版本。(注意:兩個(gè)版本安裝路徑最好是不一樣的,避免一下子眼花混淆 ^_^)
②接下來配置JAVA_HOME環(huán)境變量。
這一步是為了告訴操作系統(tǒng)JDK安裝在了哪個(gè)位置。(將來其他技術(shù)要通過這個(gè)環(huán)境變找JDK )
首先,找到JDK位置(一般是在bin包上一層的路徑)=> 右鍵此電腦 => 屬性 => 高級(jí)系統(tǒng)設(shè)置 => 環(huán)境變量
接下來,如果只裝一個(gè)JDK的按照我下面的步驟配置即可:
(新建一個(gè)JAVA_HOME => 變量名:JAVA_HOME 變量值:JDK路徑 => 確定)
如果要實(shí)現(xiàn)多個(gè)JDK,可以像我下面這樣寫:
(藍(lán)色方框里面分別配置不同版本的JDK和它各自的地址,新建一個(gè)JAVA_HOME變量,值放你要用的JDK版本的JAVA_HOME變量名即可。例如:想用JDK8那么JAVA_HOME值為%JAVA8_HOME%)
JAVA8_HOME =jdk1.8的安裝路徑根目錄 JAVA17_HOME =jdk1.17的安裝路徑根目錄 JAVA_HOME = %JAVA17_HOME% (切換jdk版本就改這里)
另外,不需要糾結(jié)配置環(huán)境變量放在用戶變量還是系統(tǒng)變量的問題。其實(shí)放在系統(tǒng)變量就是任何用戶都可以用到,放在用戶變量就只是當(dāng)前用戶可以用到。(我這里JDK8以前裝在C盤配置在系統(tǒng)配置里也懶得動(dòng)了,JDK17裝在了D盤在用戶配置,這個(gè)其實(shí)是不影響的)
③接下來我們配置PATH環(huán)境。
Path環(huán)境變量是用于記住程序路徑的,方便在命令行窗口的任意目錄啟動(dòng)程序。
具體步驟:找到可執(zhí)行文件的路徑(一般在Bin包里面),此電腦右鍵 => 屬性 => 高級(jí)系統(tǒng)設(shè)置 => 環(huán)境變量 => 雙擊path => 新建粘貼路徑【這里一般是寫%JAVA_HOME%\bin】 => 重啟命令行窗口
這里說明一下,系統(tǒng)變量優(yōu)先級(jí)是高于用戶變量的。換句話說,環(huán)境變量設(shè)置相同,先在系統(tǒng)變量找,找不到再去用戶變量找。如果有多個(gè)值,排在最前面的最上面的優(yōu)先級(jí)更高。(如果你不放心,在用戶變量里面加設(shè)一個(gè)也可以)
到這里基本就配置好了。使用的時(shí)候根據(jù)使用需求可以切換不同JDK版本,直接修改JAVA_HOME = %JAVA8_HOME% (其他配置無需做任何修改)
例如:
使用jdk1.8,JAVA_HOME = %JAVA8_HOME%
使用jdk1.17時(shí),修改JAVA_HOME = %JAVA17_HOME%
※ 另外,我們還是要注意一些小問題。
比如說我們更改了JAVA_HOME = %JAVA8_HOME%,可是卻系統(tǒng)還是顯示JDK17。那么要如何解決呢?
① 有可能環(huán)境變量做好切換設(shè)置后,沒有重新打開命令行窗口來查版本,所以我們需要關(guān)閉命令行窗口后重新打開再來查版本(java -version)。
② 優(yōu)先級(jí)的問題。前面提到了”變量中如果有多個(gè)值,排在最前面的最上面的優(yōu)先級(jí)更高。”
所以應(yīng)該是系統(tǒng)在Path中默認(rèn)啟用了一個(gè)系統(tǒng)自帶的JDK,優(yōu)先啟用排序最前的,可以把%JAVA_HOME%\bin(下圖紅框路徑)上移到那個(gè)javapath(下圖藍(lán)線的路徑)上方即可解決。
我們可以重新打開命令行窗口查看版本:
總結(jié)
到此這篇關(guān)于Java JDK的多版本共存實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java JDK多版本共存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
bootstrap.yml如何讀取nacos配置中心的配置文件
這篇文章主要介紹了bootstrap.yml讀取nacos配置中心的配置文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12解析Spring中的靜態(tài)代理和動(dòng)態(tài)代理
學(xué)習(xí) Spring 的過程中,不可避免要掌握代理模式。這篇文章總結(jié)一下代理模式。顧名思義,代理,就是你委托別人幫你辦事,所以代理模式也有人稱作委托模式的。比如領(lǐng)導(dǎo)要做什么事,可以委托他的秘書去幫忙做,這時(shí)就可以把秘書看做領(lǐng)導(dǎo)的代理2021-06-06java8 List<Object>去掉重復(fù)對(duì)象的幾種方法
本文主要介紹了java8 List<Object>去掉重復(fù)對(duì)象的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Java開發(fā)中讀取XML與properties配置文件的方法
這篇文章主要介紹了Java開發(fā)中讀取XML與properties配置文件的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01Spring+Http請(qǐng)求+HttpClient實(shí)現(xiàn)傳參
這篇文章主要介紹了Spring+Http請(qǐng)求+HttpClient實(shí)現(xiàn)傳參,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03java數(shù)據(jù)隨機(jī)分頁實(shí)現(xiàn)方案
本文主要介紹了java數(shù)據(jù)隨機(jī)分頁實(shí)現(xiàn)方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Java?IO篇之Reactor?網(wǎng)絡(luò)模型的概念
Reactor?模式也叫做反應(yīng)器設(shè)計(jì)模式,是一種為處理服務(wù)請(qǐng)求并發(fā)提交到一個(gè)或者多個(gè)服務(wù)處理器的事件設(shè)計(jì)模式,Reactor?模式主要由?Reactor?和處理器?Handler?這兩個(gè)核心部分組成,本文給大家介紹Java?IO篇之Reactor?網(wǎng)絡(luò)模型的概念,感興趣的朋友一起看看吧2022-01-01spring三級(jí)緩存以及為什么不用二級(jí)緩存解讀
Spring三級(jí)緩存機(jī)制解決了循環(huán)依賴問題,通過一級(jí)緩存存放完全初始化的bean,二級(jí)緩存存放實(shí)例化但未完成依賴注入和初始化的bean,三級(jí)緩存存放bean的創(chuàng)建工廠,避免了重復(fù)創(chuàng)建和確保代理對(duì)象的正確生成2025-02-02