1

我需要通过 C# 获取 Java 路径的最佳方法。目前我正在这样做:

public String getJavaPath()
{
   String javaKey = "SOFTWARE\\JavaSoft\\Java Runtime Environment";
   using (var baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(javaKey))
   {
      String currentVersion = baseKey.GetValue("CurrentVersion").ToString();
      using (var homeKey = baseKey.OpenSubKey(currentVersion))
         return homeKey.GetValue("JavaHome").ToString();
   }
}

但这并不适用于每台计算机。你们中有人知道获得路径的更好方法吗?

4

2 回答 2

0

遵循 Java 哲学,没有“Java 路径”。可能有一个 JAVA_HOME 路径。注册表中可能有一些东西。但它不像 .NET 框架,它是否安装在特定位置。

因此,要回答您的问题,获取 Java 路径的“最佳方法”是询问用户他的 Java 安装所在的路径(如果他没有设置 JAVA_HOME)。不要忘记检查bin\java.exe文件的路径,如果该文件不存在,则拒绝该路径。

于 2013-07-23T22:56:57.323 回答
0

另一种方法是检查 JAVA_HOME 环境变量是否存在,前提是将其设置为正确 JRE 的位置

http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx

一个问题是这不是由 JRE 安装程序设置的,因为可能安装了多个 Java 版本。

为什么 Java SDK 安装程序不设置 JAVA_HOME?

于 2013-07-23T22:34:01.070 回答