我有一个我想从Java开始的过程。问题是由于远程桌面客户端和我想要启动的进程之间不匹配,我需要修改环境变量。我不会在生产中使用它,但仅用于运行测试。我也会这样做,直到我使用的工具中修复了这个错误。
我没有root访问权限,而且我使用的是Linux RHEL7。任何人都知道如何从Java设置这个环境变量?我还应该补充一点,我是从IDE运行的。
由于缺乏实际的例子,以下答案并不是很有用: Is it possible to set an environment variable at runtime from Java?
以下示例无法在我设置范围内设置变量:Java - set environment variable
我试过了,
Process p = Runtime.getRuntime().exec("setenv " + name + " " + value);
但是请收到以下错误消息,
java.io.IOException: Cannot run program "setenv": error=2, No such file or directory
编辑: 有人建议这篇文章,
How do I set environment variables from Java?
不幸的是我找不到任何解决方案。我想要开始的过程已经有了一个Java API,它在我的环境中不起作用。我想要的是等同于linux命令,
setenv NAME VALUE
用于java运行的进程。
答案 0 :(得分:0)
使用ProcessBuilder
:
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");
Process p = pb.start();