如何从 Java 设置环境变量?我看到我可以使用 ProcessBuilder
为子进程执行此操作。不过,我有几个子进程要启动,所以我宁愿修改当前进程的环境并让子进程继承它。
有一个 System.getenv(String)
用于获取单个环境变量。我还可以使用 Map
获得完整的环境变量集 System.getenv()
。但是,调用 put()
Map
抛出 UnsupportedOperationException
显然它们意味着环境是只读的。而且,没有 System.setenv()
。
那么,有没有办法在当前运行的进程中设置环境变量呢?如果是这样,如何?如果不是,理由是什么? (是不是因为这是 Java,所以我不应该做邪恶的不可移植的过时事情,比如接触我的环境?)如果不是,我需要提供给几个管理环境变量更改的好的建议子流程?
原文由 skiphoppy 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想你已经击中要害了。
减轻负担的一种可能方法是分解出一种方法
并在启动它们之前传递任何
ProcessBuilder
s。此外,您可能已经知道这一点,但您可以使用相同的
ProcessBuilder
启动多个进程。因此,如果您的子流程相同,则无需一遍又一遍地执行此设置。