JDK7和JDK8的切換
* 背景 |
釋出專案的時候會遇到一個問題,尤其是我們接觸到不同專案的時候,因為jdk版本的緣故,導致釋出不成功。小編之前使用的便是JDK8,近期釋出的一個專案時JDK7,因為之前已經裝過JDK8了,導致自己切換的時候一直沒有成功,當時也由於時間比較緊急,於是很粗魯的將jdk8給解除安裝了。
其實不同版本的JDK之間肯定是可以相容,日後自己也嘗試了他們之間的切換方式,當然不只是修改環境變數那樣的簡單哦~
* to JDK7 |
我們先檢視一下jdk的版本:
C:\Users\Viola>java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
切換成JDK7:
1.安裝
2.修改環境變數
修改JAVA_HOME的路徑為JDK7的安裝目錄(如果是第一次安裝JDK時,需要配置path,新增:%JAVA_HOME%/lib/toos.jsr;%JAVA_HOME%/lib/dt.jar)
這時,如果我們在dos中檢視java版本時,你會發現依然是jdk8,我們應該是遺漏了是嗎,我們會發現,在安裝jdk8時,會在環境變數中的系統變數中的path中增加一個路徑C:\ProgramData\Oracle\Java\javapath,進去看我們會發現有3個java相關的exe,預設讀取jdk8的內容,我們將該path刪除。
3.
將path中的C:\ProgramData\Oracle\Java\javapath刪除,到這裡你會發現版本依然是jdk8,這是因為C:\ProgramData\Oracle\Java\javapath中的java檔案指向的是C:\Windows\System32中對應的3個檔案,雖然我們刪除了,但是依然先訪問系統檔案。
4. jdk7java檔案替換system32
用jdk7中的3個java檔案替換system32中的3個檔案,如下
我們繼續檢視jdk的版本:
C:\Users\Viola>java -version
Error : Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
5. 修改登錄檔
上面的提示資訊也很明顯,進入HKEY_LOCAL_MACHINE,修改Software\JavaSoft\Java Runtime Environment’\CurrentVersion’為1.7
現在我們檢視jdk的版本,便已經改過來
* to JDK8 |
剛剛我們成功的從JDK8切換到了7,接下來我們接著討論如何切換回到8。
切換成JDK8:
1. 修改環境變數Java_Home
2. path中新增預設路徑
將C:\ProgramData\Oracle\Java\javapath新增在系統變數path中。
3. 修改登錄檔
修改Software\JavaSoft\Java Runtime Environment'\CurrentVersion'為1.8
再一次檢視jdk版本,已經切換過來了~
備註:如果執行完上面的3步都沒有成功的話, 考慮用jdk8下的3個java檔案替換一下system32中的檔案。
* system32 |
C盤Windows資料夾中的 是共享檔案的安裝一目錄,而system32檔案是系統核心檔案就安裝在system的資料夾內。
system : 這是系統資料夾,存放了系統中的重要檔案(如DLL檔案等),一些軟體在安裝時也會向該資料夾複製檔案,因此,隨著安裝的軟體的增加,此資料夾中的內容也會越來越多。該資料夾內的檔案一般不要輕易刪除,否則會導致系統錯誤。
對於上面的提到替換system32中的檔案,我想用上面的內容說明一下。
* end |
之後我們對於不同版本的jdk便可以隨意的切換了,也不用很暴力的將他們刪除只保留一個jdk版本。
感謝您寶貴的閱讀時間