我正在使用java调用另一个程序,该程序依赖于导出的环境变量来起作用:
SOME_VARIABLE=/home/..
export SOME_VARIABLE
Run Code Online (Sandbox Code Playgroud)
如何使用java设置此变量,以便可以在一台以上的计算机上使用此程序?本质上,我希望能够通过java模拟以上命令。
您可以在使用java.lang.Runtime.getRuntime().exec(...)或java.lang.Processbuilder调用其他程序时设置环境变量。
使用Processbuilder,您可以执行以下操作:
ProcessBuilder processBuilder = new ProcessBuilder("your command");
processBuilder.environment().put("SOME_VARIABLE", "/home/..");
processBuilder.start();
Run Code Online (Sandbox Code Playgroud)
使用运行时,它是:
Map<String, String> environment = new HashMap<String, String>(System.getenv());
environment.put("SOME_VARIABLE", "/home/..");
String[] envp = new String[environment.size()];
int count = 0;
for (Map.Entry<String, String> entry : environment.entrySet()) {
envp[count++] = entry.getKey() + "=" + entry.getValue();
}
Runtime.getRuntime().exec("your command", envp);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4709 次 |
| 最近记录: |