2013-04-30 75 views
1

在Java程序中,我該如何讀取JAVA_HOME變量(以確保它被設置爲正確的方式)? 同樣,如何獲得bin文件夾的路徑?也就是說,該路徑通常爲Windows設置通過:檢查/從Java獲取JAVA_HOME變量

path %path%;%JAVA_HOME%\bin

注:我使用的是建立的OpenJDK通過Alexkasko

+0

*「我怎麼能讀」 *你想什麼功能通過了解? – 2013-04-30 10:13:59

+0

@AndrewThompson:我使用的是便攜式R發行版,我也需要一個可移植的Java(爲了使用一些R-Java接口)。我將OpenJDK文件複製到portabla R文件夾中,然後我需要設置它們的路徑。 – antonio 2013-04-30 10:20:36

回答

5

由於兩個PATH和JAVA_HOME環境變量,你應該能夠以類似的方式來閱讀這兩個它們的值:

String javaHome = System.getenv("JAVA_HOME"); 
String path = System.getenv("PATH"); 
10

嘗試

String javaHome = System.getProperty("java.home"); 
+0

我得到: ''字符串JAVAHOME = System.getProperties( 「java.home」);'' ''^'' ''要求:沒有arguments'' ''發現:String'' ''原因:實際和正式的參數列表長度不同'''''''''''' ''1錯誤'' – antonio 2013-04-30 11:06:06

+0

對不起,它是getProperty,而不是getProperties。 – Thilo 2013-04-30 12:08:49

+0

謝謝,System.getenv(「JAVA_HOME」)不適用於我,因爲變量未導出(非環境變量) – golimar 2015-08-26 11:01:20

2

你必須使用System.getenv("JAVA_HOME");

0

在Windows下你可以從你的應用程序執行set命令,你會在你的CMD做的事後處理輸出:

Process p; 
p = Runtime.getRuntime().exec("set JAVA_HOME"); 

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); 

但作爲回答by others

System.getenv("JAVA_HOME"); 

woul d是更好的方式。

但是,如果有人需要替代方案,請參閱上文。 :d