簡體   English   中英

在C#中找到Java路徑的最佳方法

[英]Best way to find java path in 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();
   }
}

但這並不適用於所有計算機。 你們當中有人知道更好的方法嗎?

另一種方法是檢查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安裝所在的路徑(如果未設置JAVA_HOME的話)。 不要忘記檢查bin\\java.exe文件的路徑,如果該文件不存在,請拒絕該路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM