如何从Java中设置环境变量?我发现我可以使用ProcessBuilder
为子进程做到这一点。不过,我有几个子流程要启动,所以我宁愿修改当前流程的环境,让子流程继承它。
有System.getenv(String)
用于获取单个环境变量。我也可以用System.getenv()
得到完整环境变量集的Map
。但是,在那个Map
上调用put()
会抛出一个UnsupportedOperationException
——显然它们的意思是环境是只读的。并且,没有System.setenv()
。
那么,有没有办法在当前运行的进程中设置环境变量呢?如果有,怎么做?如果不是,理由是什么?(是不是因为这是Java,所以我不应该做邪恶的、不可移植的、过时的事情,比如触摸我的环境?)如果不是,有什么好的建议来管理我将需要提供给几个子流程的环境变量更改吗?