我试图从Java执行Bash Shell脚本,并使用这段代码运行良好.
public void executeScript() { try { new ProcessBuilder("myscript.sh").start(); System.out.println("Script executed successfully"); } catch (IOException e) { e.printStackTrace(); } }
上面的代码异步运行.但我想要实现的是同步执行代码.我希望Java进程等到脚本执行完成后再执行下一批代码.
总而言之,我希望在批处理文件("myscript.sh")完成执行后执行"打印语句 - 成功执行脚本" .
谢谢
你要等待进程结束,这是WAITFOR()这样的
public void executeScript() { try { ProcessBuilder pb = new ProcessBuilder( "myscript.sh"); Process p = pb.start(); // Start the process. p.waitFor(); // Wait for the process to finish. System.out.println("Script executed successfully"); } catch (Exception e) { e.printStackTrace(); } }