如何从Java设置环境变量?

如何从Java设置环境变量?我看到我可以使用来对子流程执行此操作ProcessBuilder。不过,我有几个子流程要启动,所以我宁愿修改当前流程的环境,并让这些子流程继承它。

有一个System.getenv(String)获取单个环境变量的方法。我还可以使用获取Map完整的环境变量集System.getenv()。但是,调用put()该方法Map将引发UnsupportedOperationException-显然,这意味着该环境是只读的。而且,没有System.setenv()

那么,有什么方法可以在当前运行的进程中设置环境变量?如果是这样,怎么办?如果没有,有什么根据?(是因为这是Java,所以我不应该像在触摸我的环境那样做邪恶的,不可移植的过时的事情吗?)如果没有,那么管理环境变量更改的任何好的建议都需要反馈给几个子流程?

回答:

(是因为这是Java,所以我不应该像触摸我的环境那样做邪恶的,不可移植的过时的事情吗?)

我认为你已经打中了头。

减轻负担的一种可能方法是排除一种方法

void setUpEnvironment(ProcessBuilder builder) {

Map<String, String> env = builder.environment();

// blah blah

}

ProcessBuilder在启动它们之前通过它。

另外,你可能已经知道这一点,但是可以使用相同的命令启动多个进程ProcessBuilder。因此,如果你的子流程相同,则无需一遍又一遍地进行此设置。

以上是 如何从Java设置环境变量? 的全部内容, 来源链接: utcz.com/qa/420615.html

回到顶部