gpt4 book ai didi

java - 在 Java 中保留环境变量

转载 作者:行者123 更新时间:2023-11-30 09:37:54 25 4
gpt4 key购买 nike

我解决了以前发表在 stackoverflow 上的问题。因此,我的 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)。

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

谢谢!

最佳答案

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

 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 中没有跨平台的方法来设置调用上下文的环境变量。

关于java - 在 Java 中保留环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10351858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com