在C#中查找java路径的最佳方法
本文关键字:最佳 方法 路径 java 查找 | 更新日期: 2023-09-27 18:24:48
我需要通过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();
}
}
但这并不是适用于每台电脑。你们中有人知道更好的方法来获得路径吗?
另一种方法是检查JAVA_HOME环境变量的存在,前提是将其设置为正确的JRE 的位置
http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx
一个问题是JRE安装程序没有设置这一点,因为可能安装了多个版本的Java。
为什么不';Java SDK安装程序是否设置了Java_HOME?
遵循Java哲学,没有"Java路径"。可能有一个JAVA_HOME路径。注册表中可能存在。但它与.NET框架不同,后者安装在特定的位置或不安装。
因此,为了回答您的问题,获取Java路径的"最佳方法"是询问用户,如果他没有设置Java_HOME,那么他的Java安装位于哪个路径上。不要忘记为bin'java.exe
文件检查该路径,如果该文件不存在,则拒绝该路径。