1. 程式人生 > >一臺機器多個版本的JDK共存

一臺機器多個版本的JDK共存

我的機器上最 始安裝的是 jdk1.6 ,後來因 工作需要又安裝了 jdk1.4 。但是, 量我並未更改, 是指向 jdk1.6 的路徑的。 可是,在 cmd 視窗 java -version 卻得到是 1.4.2 查詢環 量:
1.
我的 電腦 -> 屬性 -> ->
2.
統環 (HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment)
 
當前用 戶環

(HKEY_CURRENT_USER/Environment)
2
置完全是一 ,都是指向 1.6 了搞清楚 問題 的原因,通 過查詢 料,原來是 這樣 的:

JDK
在安裝的 程當中將在登錄檔會生成如下 3 目:
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment

JDK 安裝程式將會把 java.exe javaw.exe javareg.exe 3 個可 行檔案拷 %SystemRoot%/system32 下,由於 %SystemRoot%/system32 被操作系 預設的 最高 PATH 搜尋 路徑,因此可保 在命令列任何目 下可執行 java.exe 來啟 JVM 查詢 HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment 得知 CurrentVersion=1.4 於是我手
將它修改 1.6 後,然後執行 java -version 得到以下 果:

Registry key 'Software/JavaSoft/Java Runtime Environment/
has value '1.6', but '1.4' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.


所以,不能 簡單 的修改登錄檔的 CurrentVersion 來達到更改執行的 JRE 。若人 的修改 CurrentVersion ,會使得不同版本的 java.exe 與己版本不符的 java.dll jvm.dll ,將引起 料的後果! 一般地,當在系 中裝了兩套或多套版本的 Java2 SDK ,後面安裝的 Java2 SDK 會將自己 java.exe javaw.exe %SystemRoot%/system32 下,從而覆蓋先前版本的 java.exe javaw.exe ,並且在登錄檔中改寫 CurrentVersion 後安裝的版本。 所以建 在安裝 Java2 SDK 前,先卸 以前 安裝的版本。