如何从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