在C#中查找java路径的最佳方法

时间:2013-07-23 22:15:42

标签: c#

我需要通过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();
   }
}

但这并不适用于每台计算机。你们中的任何人都知道一个更好的方法来获得这条路吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

Why doesn't the Java SDK installer set JAVA_HOME?

答案 1 :(得分:0)

遵循Java哲学,没有“Java Path”。 可能是JAVA_HOME路径。 可能是注册表中的内容。但它不像.NET框架,它安装在特定位置或不安装。

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