只有部分脚本从Java程序执行

时间:2011-10-30 13:49:24

标签: java shell processbuilder

我尝试从Java程序运行shell脚本,但整个脚本没有被执行。并想出为什么我们可能遇到这样的问题?

执行shell脚本的Java代码:

File file = new File("/path/to/script");
String COMMAND= "./run";
ProcessBuilder p = new ProcessBuilder(COMMAND);
p.directory(file);
try {
    Process startProcess= p.start();
} catch (IOException e) {
    e.printStackTrace();
}

脚本运行正常但不执行整个脚本。似乎只有第一行正在执行。

1 个答案:

答案 0 :(得分:1)

如果您确定该脚本开始运行,则问题不在java中,而在于脚本本身。

差异的原因可能是错误的路径或错误的环境。当您从控制台运行脚本时,您处于用户的环境中,因此脚本可以使用所有环境变量。

尝试添加一些调试输出以解决问题。