2013-04-30 72 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