我正在尝试检测是否安装了JVM以及它所在的位置以便我可以运行java.exe
.
我设法找到的就是HKCU\Software\JavaSoft\Java Runtime Environment\<ver>
.假设安装它是否安全%PROGRAMFILES%\Java\jre<ver>
?
我试图在C#中这样做,但我认为答案是语言无关的,所以任何答案都值得赞赏.
编辑:好的傻我,我找到了如何检测是否在使用c#的计算机上安装了java运行库,这指向了HKLM\Software\JavaSoft\Java Runtime Environment\CurrentVersion
哪个有效HKLM\Software\JavaSoft\Java Runtime Environment\<ver>\JavaHome
.我设法找到了这些而不是在下面HKLM\Software\Wow6432Node\JavaSoft\Java Runtime Environment
.有没有办法检测我应该检查哪些不试图嗅探CPU类型?
我将用我最终使用的代码进行测试:
string javaDirectory = null;
// Native registry key - 32b on 32b or 64b on 64b
// Fall back on 32b Java on Win64 if available
RegistryKey javaKey =
Registry.LocalMachine.OpenSubKey("SOFTWARE\\Javasoft\\Java Runtime Environment") ??
Registry.LocalMachine.OpenSubKey("SOFTWARE\\Wow6432Node\\Javasoft\\Java Runtime Environment");
if (javaKey != null)
{
string javaVersion = javaKey.GetValue("CurrentVersion").ToString();
try
{
javaDirectory = javaKey.OpenSubKey(javaVersion).GetValue("JavaHome").ToString();
} catch(NullReferenceException)
{ /* Ignore null deref, means we can't get a directory */ }
}
if (javaDirectory == null)
{
// deal with a lack of Java here.
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
29855 次 |
最近记录: |