2013-11-23 94 views
0

當我檢查或者通過使用命令行安裝JRE版本:JRE版本查詢

java -version 

,或者通過在關鍵的註冊表:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment and the value CurrentVersion 

我得到1.7。

然而,當我查詢使用C#作爲以下的註冊表值:

string jreVersion = (string) Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment", "CurrentVersion", null); 

它讀取1.5。

任何人都可以幫忙嗎?

P.S:我正在使用Windows Server 2008 R2和.NET 4.0,並正確安裝了JRE 1.7。

PS:Java的版本上寫着:

java version "1.7.0_40" 
Java(TM) SE Runtime Environment (build 1.7.0_40-b43) 
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode) 

的JavaSoft的項包含以下子項:

  1. Java開發工具包
  2. Java插件
  3. Java運行時環境
  4. Java更新
  5. Java Web Start的
  6. 偏好設置
+0

是否有JavaSoft的下安裝任何其他子項?你能否提供java -version的完整輸出? – mttdbrd

回答

0

您可能正在運行到註冊表重定向:http://msdn.microsoft.com/en-us/library/windows/desktop/aa384232(v=vs.85).aspx

在你的機器做下面的註冊表項的手工檢查:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment 

我我敢打賭,價值有1.5。

在C#中,你可以打開註冊表,如果你想使用OpenBaseKey方法並指定RegistryView參數使用64位或32位註明:

RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); 
+0

謝謝!它確實有幫助。 – hiddenUser