2010-07-26 79 views
52

如何在Windows上更改Java運行時版本。如何在Windows(7)上更改Java運行時版本?

我爲某些測試安裝了Java   7,現在我需要舊的java6作爲系統默認值,但我不想卸載Java   7(我需要它用於以後的測試)。我可以在控制面板/ Java/JRE選項卡中更改系統使用的JRE嗎?我可以更改/編輯/添加/刪除用戶使用的版本,但不能使用系統。

回答

72

對於Java 應用,即所投放的(通常)爲.jar文件,並開始與java -jar xxx.jar或通過快捷方式,做同樣的,將要推出的將是第一個在PATH發現JRE程序。

如果您安裝了JRE或JDK,則可能找到.exe的地方位於C:\Program Files\JavaSoft\JRE\x.y.z之類的目錄下。但是,我發現一些「開箱即用」的Windows安裝到(也?)在C:\winnt\system32(NT和2000)或C:\windows\system(Windows 95,98)中有java.exejavaw.exe的副本。這通常是一個相當老的Java版本:1.3,也許吧?你會想在命令窗口中執行java -version來檢查你是否沒有運行一些過時的Java版本。

您當然可以重寫PATH設置,或者甚至可以在沒有它的情況下通過在命令行或快捷方式定義中明確指出java.exe/javaw.exe的路徑。


如果你正在運行小程序從瀏覽器,或者也可能Java Web Start應用(他們看起來像應用程序,只要他們有自己的窗口,但您從瀏覽器啓動它們)

(e.g.) 
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.3 
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\1.3.1 

Key: HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment 
Name: CurrentVersion 
Value: (e.g.) 1.3 

更多的註冊表項都採用這種方案創建的:JRE的選擇是由一組的註冊表設置來確定

即一個用於主要版本號和一個包括次要版本號。每個鍵都有這樣的(圖示例)數值:

JavaHome : C:\program Files\JavaSoft\JRE\1.3.1 
RuntimeLib : C:\Program Files\JavaSoft\JRE\1.3.1\bin\hotspot\jvm.dll 
MicroVersion: 1 

...和你的瀏覽器將尋找這些設置,以確定JRE火起來哪個。

由於Java版本變化非常頻繁,現在有一個稱爲「Java控制面板」的「嚮導」,用於手動切換瀏覽器的Java版本。這適用於IE,Firefox以及Opera和Chrome等其他應用程序:它是Windows'System Settings應用程序中的'Java'小程序。你可以選擇任何一個安裝的JRE。我相信巫師擺弄這些註冊表項。

如果您和我一樣,只需簡單地刪除目錄即可「卸載」舊的Java版本,您也會在這些選擇中找到這些「鬼魂」;所以請確保您選擇的JRE對應於完整的Java安裝!


一些其他的答案,建議設置環境變量JAVA_HOME。這是同時過時的建議。孫才明白,圍繞Java 2,這個環境設置

  1. 不可靠的,因爲用戶經常將它設置不正確,並
  2. 不必要的,因爲它很容易夠運行時找到Java庫目錄,知道它們處於相對於java.exe或javaw.exe啓動路徑的固定路徑中。

幾乎沒有任何現代Java軟件需要或重視JAVA_HOME環境變量。


更多信息:

...和多版本支持的一些有用的信息:

+5

默認Java7嚮導還會在Windows 7上將java.exe,javaw.exe和javaws.exe安裝到C:\ Windows \ System32 \中。這不是遺留問題。無論如何,好的答案! – 2012-10-22 14:40:02

+0

感謝這有助於。 – Ayusman 2014-06-24 07:24:18

+0

如果您更新Java版本,您可能會發現如果它在PATH環境變量中,您仍然使用舊版本。 – 2014-06-28 06:40:43

0

更新你的環境變量

確保引用到Java/bin中是最新的「路徑」;如果您有JAVA_HOME或同等設置,這可能是自動的。如果設置了JAVA_HOME,只需更新它以引用舊的JRE安裝。

3

您需要做的就是在Windows中設置PATH環境變量,以指向java6 bin目錄而不是java7目錄。

右鍵單擊我的電腦>高級系統設置>高級>環境變量

如果有JAVA_HOME環境變量,將其設置爲指向正確的目錄中。

25

從Java 1.6開始,將java.exe安裝到支持「-version」命令行選項的%windir%\ system32中。你可以用它來選擇特定的版本來運行,例如:

java -version:1.7 -jar [path to jar file] 

將在Java 1.7上運行一個jar程序,如果已安裝。

參閱Oracle文檔都在這裏:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html

4

進入控制面板 - > Java的 您可以在這裏選擇

+7

這對Java 7沒有任何影響,'C:\ Program Files'中的公共JRE將始終用於代替指定的路徑。 – rustyx 2014-04-17 09:57:06

+0

如果PATH變量被另一個Java安裝覆蓋,則更好。 – 2016-04-01 09:20:45

6

活動版本。一旦我在我的Java版本更新到8通過瀏覽器的建議。不過,我選擇卸載之前用於編寫項目的Java 6版本。當我輸入命令 「java -version」cmd它顯示1.8,我無法啓動在Java 1.6上運行的Eclipse IDE。

當我爲瀏覽器安裝Java 8更新時,它已將「C:\ ProgramData \ Oracle \ Java \ javapath」附加到「PATH」系統變量的開頭。新增路徑指向Java vesion 8。所以我從「PATH」系統變量中刪除了該路徑,並且一切正常。 :)

54

我用於類似UNIX的機器上工作,但最近我不得不在Windows 7機器上使用Java做一些工作。我有這個問題,這是我解決了它。它適用於我,所以我希望它可以用於將來可能有這個問題的任何人。

考慮到驅動器C上的默認Java安裝,這些步驟是公開的。如果您的安裝不是默認安裝,則應更改所需的步驟。

在Windows 7

更改默認的Java VM

假設我們已經安裝了Java 8,但無論出於何種原因,我們希望保持與Java 7

1-啓動一個cmd以管理員身份

2-轉到C:\ProgramData\Oracle\Java

3-重命名當前目錄javapathjavapath_ <version_it_refers_to>。例如: - rename javapath javapath_1.8

4-創建javapath_ <version_you_want_by_default>目錄。例如爲:mkdir javapath_1.7

5 cd到它,並創建以下鏈接:

cd javapath_1.7 
mklink java.exe "C:\Program Files\Java\jre7\bin\java.exe" 
mklink javaw.exe "C:\Program Files\Java\jre7\bin\javaw.exe" 
mklink javaws.exe "C:\Program Files\Java\jre7\bin\javaws.exe" 

6-光盤拿出來,並創建一個目錄鏈接javapath指向期望javapath。例如:mklink /D javapath javapath_1.7

7打開登記和更改密鑰HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft的\ Java運行時環境\ CURRENTVERSION具有值1.7

此時如果執行java -version你應該看到你正在使用java版本1.7:

java version "1.7.0_71" 
Java(TM) SE Runtime Environment (build 1.7.0_71-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) 

8-最後,創建環境變量JAVA_HOME是一個好主意。要做到這一點我創建名爲C CURRENTVERSION目錄鏈接:\ Program Files文件\的Java指向Java版本我感興趣的如:

cd C:\Program Files\Java\ 
mklink /D CurrentVersion .\jdk1.7.0_71 

9-而一旦做到這一點:

  • 右鍵單擊我的電腦,然後選擇屬性。
  • 在高級選項卡,選擇環境變量,然後編輯/創建JAVA_HOME以指向JDK軟件的位置,在這種情況下,C:\ Program Files文件\的Java \ CURRENTVERSION
+3

最好的答案像一個魅力工作,感謝分享。 – Wills 2015-02-16 18:09:05

+0

@Mia Hi Mia,我試過這個解決方案,但是在執行'java -version'時出現以下錯誤信息:'錯誤:註冊表項'Software \ JavaSoft \ Java Runtime Environment'\ CurrentVersion的值爲'1.7',但'1.8'是必須的。錯誤:找不到java.dll。錯誤:無法找到Java SE運行時環境' – 2016-07-22 13:16:03

+0

您好@YassinHajaj,我不知道我是否可以得到很多幫助,因爲我目前沒有這個設置了。無論如何,它看起來像你的道路上可能存在一些問題。確保你沒有真正複製文件,而是創建軟鏈接(步驟5)。 「javapath」和「CurrentVersion」目錄也是一樣(步驟6和8)。祝你好運! – Mia 2016-07-25 11:20:56

相關問題