我尝试从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();
}
脚本运行正常但不执行整个脚本。似乎只有第一行正在执行。
答案 0 :(得分:1)
如果您确定该脚本开始运行,则问题不在java中,而在于脚本本身。
差异的原因可能是错误的路径或错误的环境。当您从控制台运行脚本时,您处于用户的环境中,因此脚本可以使用所有环境变量。
尝试添加一些调试输出以解决问题。