2

我解决了在 stackoverflow 上发布的以前的问题。因此,我的 Java 应用程序修改了 System 环境,例如:

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)。

我不知道发生了什么。为什么第二个应用程序没有保存环境?欢迎任何想法或帮助:)

谢谢!

4

2 回答 2

2

使用ProcessBuilderAPI 启动子进程,它允许您设置环境变量:

 ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
 Map<String, String> env = pb.environment();
 env.put("VAR1", "myValue");
 env.remove("OTHERVAR");
 env.put("VAR2", env.get("VAR1") + "suffix");
 pb.directory(new File("myDir"));
 Process p = pb.start();

Java 中没有跨平台的方式来设置调用上下文的环境变量。

于 2012-04-27T13:53:47.023 回答
0

查看写入,然后读取 Java属性文件,

于 2012-04-27T14:37:50.980 回答