我发布了以前发布在stackoverflow上的问题。因此,我的Java应用程序修改系统环境,如:在Java中保留环境变量
Map<String, String> env = System.getenv();
...
...
map.put("SOME_VAR_ENV", "SOME_KEY_VAR");*
这似乎工作得很好,因为有些句子后面:
System.out.println(System.getenv("SOME_VAR_ENV"));*
打印SOME_KEY_VAR
。
而且,这是我的问题。在下一句话中,我的Java应用程序将控制权交给其他Java应用程序。我的Java应用程序。调用一个外部的Java类,据我所知,它必须创建一个新的子进程来运行。但是,新进程没有保留新的环境变量(SOME_VAR_ENV)。
我不知道什么是hapening。为什么第二个应用程序没有保留环境?欢迎任何想法或帮助:)
谢谢!
你能张贴在代码“在接下来的一句,我的Java应用程序得到控制的其他Java应用程序。”? – toto2 2012-04-27 14:39:27
它调用一个外部类:Session s = new Session(); s.run(PARAMS); 。我无法控制Session类的流执行,但我希望s对象获得我修改的环境。 – smc 2012-04-27 14:49:08
在Session中有一个选项以某种方式传递环境变量,或者你可以修改Session的代码,否则你会被卡住。 – toto2 2012-04-27 15:08:44