2013-11-23 3 views
0

Когда я проверить версию JRE установлена ​​либо через командную строку с помощью:JRE версии Query

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 Kit Разработка
  2. Java Plug-в
  3. Java Runtime Environment
  4. Обновление Java
  5. Java Web Start
  6. Prefs
+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 

I Я ставлю, что у этого значения есть 1.5.

В C#, вы можете открыть реестр и указать, если вы хотите использовать 64 или 32 бит с помощью метода OpenBaseKey и указав параметр RegistryView:

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

Спасибо! это действительно помогло. – hiddenUser

Смежные вопросы