因此,我正在为我的应用程序创建 Java Access Bridge 安装程序,并且需要找到 Java 安装目录。我正在使用这段有效的代码..
public static string GetJavaInstallationPath()
{
try
{
string environmentPath = Environment.GetEnvironmentVariable("JAVA_HOME");
if (!string.IsNullOrEmpty(environmentPath))
{
return environmentPath;
}
string javaKey = "SOFTWARE\\JavaSoft\\Java Runtime Environment\\";
using (Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(javaKey))
{
string currentVersion = rk.GetValue("CurrentVersion").ToString();
using (Microsoft.Win32.RegistryKey key = rk.OpenSubKey(currentVersion))
{
return key.GetValue("JavaHome").ToString();
}
}
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
return null;
}
}
直到.. 我在我的虚拟机上运行了干净的 Windows 7 64 位安装并从 java.com 安装了 Java。它默认安装了 32 位版本的 Java,但我真的认为这并不重要,因为 32 位还需要 JAVA_HOME 变量或注册表项。好吧,事实并非如此!没有注册表项,PATH 变量中没有条目,也没有 JAVA_HOME 变量。所以这段代码行不通!我的问题是,即使安装的是 32 位 Java 版本,我如何检测 java 安装目录。没有什么我知道我可以使用..