Java如何在父进程中设置环境变量

时间:2018-03-29 13:57:33

标签: java bash environment-variables

我有一个bash脚本,在某些时候会启动一个java程序。在java程序中(由于几个原因)我需要设置一个环境变量,该变量也应该在父bash过程中设置。 我怎么能这样做?

我已尝试过以下操作,但它无效:

String[] commands = new String[]{"command", "arg1", "arg2"};
ProcessBuilder processBuilder = new ProcessBuilder(commands);
processBuilder.environment().put("my_var", "my_value");
Process proc = processBuilder.start();
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream()));
proc.waitFor();

1 个答案:

答案 0 :(得分:0)

子进程无法从其子进程的父进程中创建新的环境变量。环境的流动是向下的:父环境->子环境->子子环境等...