按照網(wǎng)上的操作結(jié)果出現(xiàn)這種情況
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
說(shuō)一下前因后果:
1:為什么要切換jdk 或者安裝兩個(gè)jdk版本蛋逾?
? ? 答:因?yàn)槲覀児鹃_(kāi)發(fā)統(tǒng)一使用版本是 “jdk1.7.0_75” 而我搭建的springBootWeb項(xiàng)目是需要使用? ? ? jdk1.8或者以上的版本茁瘦。
2:如何切換朽缎?
答 :首先你要確保你的環(huán)境變量是正常的例如我的環(huán)境變量是jdk1.7的版本如圖:
? ? ? ? 其次就是你需要修改環(huán)境變量炎咖,我這里的建議是修改JAVA_HOME的指向版本,例如1.7的你換成1.8的就行萝映,還有些人直接加了一個(gè)JAVA_HOME1/JAVA_HOME2 然后去改CLASSPATH 中的JAVA_HOME名稱记罚,當(dāng)然以上操作都是基于windows 中的環(huán)境變量 其他系統(tǒng)大同小異次泽。
接下來(lái)就是变秦,注冊(cè)表中的事了成榜,你需要找到,
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit
這個(gè)注冊(cè)表的屬性CurrentVersion的值改為你需要的版本例如1.7如圖:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
這個(gè)也一樣 如上圖修改對(duì)應(yīng)的這個(gè)CurrentVersion屬性值
最后你需要替換相對(duì)應(yīng)的包蹦玫,提到包 當(dāng)然要知道包的位置
赎婚,將你需要的版本中的? :java.exe,javaw.exe,javaws.exe 這三個(gè)復(fù)制替換到目錄
C:\Windows\System32
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
C:\Windows\SysWOW64
做完這些其實(shí)這一步驟我也沒(méi)明白到底是個(gè)什么鬼操作 刘绣,反正我這三個(gè)路徑都找到了之前已經(jīng)存在的exe文件,切換完后基本上你已經(jīng)切換成功了 可以去cmd命令窗口去試試了挣输。
題外資料jdk配置項(xiàng)示例:
JAVA_HOME : C:\Program Files\Java\jdk1.7.0_75
CLASSPATH :.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar? //注意前面的點(diǎn)
PATH :%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;? //這里需要注意原有的系統(tǒng)中已經(jīng)存在path路徑我們只需要把jdk的這段路徑放到最前面就行 別忘了最后的分隔符纬凤;
3:我們來(lái)深究一下 和這個(gè)替換exe文件是個(gè)什么鬼操作,
? ?由于JDK安裝程序會(huì)把java.exe撩嚼,javaw.exe停士,javaws.exe這三個(gè)可執(zhí)行文件拷貝到%SystemRoot%/system32目錄下,
? ?其中JDK1.8版本還會(huì)將以上三個(gè)可執(zhí)行文件拷貝到C:\ProgramData\Oracle\Java\javapath目錄下完丽,
? ?且以上路徑被操作系統(tǒng)設(shè)置為最高優(yōu)先權(quán)的PATH搜索路徑恋技,因此會(huì)影響到JDK版本切換。
故需要分別刪除以下目錄下的三個(gè)可執(zhí)行文件java.exe舰涌,javaw.exe,javaws.exe:
4題外應(yīng)用
IDEA配置多JDK版本
? 增加JDK版本: File --> Project Structure?-->?Platform Settings?--> SDKs?--> +
? 項(xiàng)目更換JDK版本:File --> Project Structure?-->?Project Settings?-->?Project
四你稚、修改Maven項(xiàng)目的pom.xml文件最后還需要注意瓷耙,使用的JDK版本更換后,需要在Maven的pom.xml文件中修改compiler插件-source參數(shù)刁赖,改為指定的JDK版本搁痛,否則會(huì)報(bào)錯(cuò):Error:java: 無(wú)效的源版本: 8報(bào)錯(cuò)原因是,JDK的版本與項(xiàng)目的要求不一致宇弛,源碼編寫使用的是JAVA9語(yǔ)法鸡典,但是pom.xml文件中卻指定源碼通過(guò)JDK1.8(-source 1.8)來(lái)編譯。
結(jié)束了枪芒,祝工作順利彻况!