gpt4 book ai didi

java - 如何在 Windows 上检测 JVM 的存在和位置?

转载 作者:可可西里 更新时间:2023-11-01 12:49:55 25 4
gpt4 key购买 nike

我正在尝试检测是否安装了 JVM 及其所在的位置,以便我可以运行 java.exe .

我设法找到的是 HKCU\Software\JavaSoft\Java Runtime Environment\<ver> .假设它安装在 %PROGRAMFILES%\Java\jre<ver> 中是否安全? ?

我正尝试在 C# 中执行此操作,但我认为答案与语言无关,因此欢迎任何答案。

编辑:好吧,傻我,我找到了How to detect whether java runtime is installed or not on a computer using c#这让我指向了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.
}

关于java - 如何在 Windows 上检测 JVM 的存在和位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4791732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com