我需要通过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();
}
}
但这并不适用于每台计算机。你们中的任何人都知道一个更好的方法来获得这条路吗?
答案 0 :(得分:0)
另一种方法是检查是否存在JAVA_HOME环境变量,前提是将其设置为正确JRE的位置
http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx
一个问题是,这不是由JRE安装程序设置的,因为可能安装了多个版本的Java。
答案 1 :(得分:0)
遵循Java哲学,没有“Java Path”。 可能是JAVA_HOME路径。 可能是注册表中的内容。但它不像.NET框架,它安装在特定位置或不安装。
因此,要回答您的问题,获取Java路径的“最佳方法”是询问用户他的Java安装所在的路径,如果他没有设置JAVA_HOME。不要忘记检查bin\java.exe
文件的路径,如果该文件不存在,则拒绝该路径。