从Java执行source命令

时间:2013-08-22 14:48:21

标签: java linux bash shell environment-variables

我有一个bash脚本文件,我在shell中使用source命令调用它并设置了许多环境变量。然后我可以使用环境变量设置的所有工具。

现在我想通过使用以下方法在Java中做同样的事情:

static Runtime run = Runtime.getRuntime();
Process pr = run.exec(command);
pr.waitFor();

我知道source是一个内部命令,我不能用Java调用它。

有没有其他方法可以在java中为该文件设置环境变量,以便以后能够在我的代码中使用它们来调用其他命令?

提前谢谢!

1 个答案:

答案 0 :(得分:3)

Process pr = new ProcessBuilder("/bin/bash", "-c", ". env.sh; " + command).start();

尝试类似这样的方法,您可以在同一个shell进程中获取脚本并执行后续命令。每次要执行命令时,都可以有效地获取脚本。