我試着從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'可能是照亮的(或者甚至是問題的根源)。 –