1. 程式人生 > >JDK7和JDK8的切換

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中的JDK8預設檔案
   將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版本。

       感謝您寶貴的閱讀時間