当我检查通过命令行安装的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 2008 R2和.NET 4.0,并正确安装了JRE1.7。
P.S: java -version读到:
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键包含以下子项:
发布于 2013-11-23 21:26:22
您可能会遇到注册表重定向: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#中,您可以打开注册表并指定是否要使用64位或32位,使用OpenBaseKey方法并指定RegistryView参数:
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);https://stackoverflow.com/questions/20166292
复制相似问题