在Java中访问shell环境变量

在Java中访问shell环境变量,java,shell,environment-variables,Java,Shell,Environment Variables,有人知道如何在Java中访问标准shell环境的环境变量吗?我使用的是ProcessBuilder类,我必须指定在我运行的shell脚本中使用的特定环境变量,这些变量存在于标准shell环境中 访问ProcessBuilder环境不起作用。您可以通过System.getenv()获取程序创建时存在的环境变量: processBuilder.environment().get("variablename"); 当Java应用程序使用ProcessBuilder对象创建新进程时,传递给新进程的默

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


访问ProcessBuilder环境不起作用。

您可以通过
System.getenv()
获取程序创建时存在的环境变量:

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

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


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

不,这不起作用,我已经打印了process Builder环境中的所有变量,我要查找的变量不存在。但是,当在终端中输入env时,您能解释一下吗?您是从同一终端启动java应用程序的吗?我已经厌倦了这种方法-请参阅上面的评论。@denis,您的流程是如何启动的?您使用的是什么java版本?