2010-10-18 154 views
4

有谁知道如何访问Java中的标准shell环境的环境变量?我使用的是ProcessBuilder类,我必须指定在运行的shell脚本中使用的特定环境变量,这些变量存在于标准shell环境中。在Java中访问shell环境变量

访问ProcessBuilder环境不起作用。

回答

9

你可以在你的程序是通过System.getenv()创建时存在的环境变量得到:

http://download.oracle.com/javase/tutorial/essential/environment/env.html

当一个Java应用程序使用的ProcessBuilder对象来创建一个新的进程,传递给新进程的默认环境变量集合是提供给应用程序的虚拟机进程的相同集合。应用程序可以使用ProcessBuilder.environment更改此设置。

看起来您的子进程应该自动获取您的环境。

+0

我已经厌倦了这种类型的方法 - 请参阅上面的评论。 – dominic 2010-10-18 13:29:48

+0

@denis,你的过程如何开始? – dsolimano 2010-10-18 13:45:17

+0

您使用的是什么Java版本? – 2010-10-18 13:46:12

0
processBuilder.environment().get("variablename"); 
+0

没有,这不起作用,我已经打印了Process Builder环境中的所有变量,并且我正在查找的变量都不存在。但是,在终端中输入env时,您是否可以解释这一点? – dominic 2010-10-18 13:29:07

+1

你是否从同一个终端启动java应用程序? – dogbane 2010-10-18 13:45:27