我试着从Java程序运行一个shell脚本,但整个脚本没有被执行。想法为什么我们会遇到这样的问题?只从Java程序执行脚本的一部分
的Java代码执行shell脚本:
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();
}
脚本运行正常,但不执行整个脚本。似乎只有第一行正在执行。
脚本的第一行是什么?你是否只有第一条线路运行? – Mat
另请参阅此可能的重复:[无法从java(使用ProcessBuilder)启动程序](http://stackoverflow.com/questions/1043611/failure-to-start-program-from-java-using-processbuilder) – trashgod
每当我听说过这个问题,并且看到上面的代码,它提醒我建议阅读并执行[When Runtime.exec()的所有提示不会](http://www.javaworld.com/javaworld/jw- 12-2000/JW-1229-traps.html)。消费(并以某种方式报告)“Process”的'System.out' /'err'可能是照亮的(或者甚至是问题的根源)。 –