import java.util.Map;
class Test {
public static void main(String[] args) {
Map<String, String> env = System.getenv();
System.out.println(env);
env.put("ID", "1");
}
}
我在初始化时添加一些键值对,然后再添加一个键值对,这样程序有什么问题?
答案 0 :(得分:3)
答案 1 :(得分:0)
我在初始化时在地图中添加了一些键值对
不,你不是。您正在初始化地图引用变量env
,以引用通过调用System.getEnv()
返回的预先存在的地图。
然后再添加一个键值对,这样程序有什么问题?
如上所述,您是第一次尝试添加键值对。 Map的Javadoc。它说put
方法是一个可选操作。事实上,getEnv()
返回的地图类型并不支持put()
。
你到底想要做什么?如果要更改子进程的环境,请使用ProcessBuilder
类,该类允许您指定其他环境变量。如果您尝试更改当前流程的环境,则只需创建自己的私有地图,将getEnv()
中的所有条目复制到其中,然后在您需要的任何地方使用您自己的地图而不是getEnv()