我正在使用以下代码来执行批处理文件:
java.lang.Runtime rt = java.lang.Runtime.getRuntime();
Process pr = rt.exec("MyBatch.bat");
我的批处理文件执行需要一些时间。我希望我的servlet进程等待批处理文件执行完成。我想在执行批处理文件后关闭命令提示符。如何做到这一点?
我正在使用以下代码来执行批处理文件:
java.lang.Runtime rt = java.lang.Runtime.getRuntime();
Process pr = rt.exec("MyBatch.bat");
我的批处理文件执行需要一些时间。我希望我的servlet进程等待批处理文件执行完成。我想在执行批处理文件后关闭命令提示符。如何做到这一点?
使用Process.waitFor()
方法,使您的线程等待批处理文件执行完成。
java.lang.Runtime rt = java.lang.Runtime.getRuntime();
Process pr = rt.exec("MyBatch.bat");
pr.waitFor();
如果您需要访问控制台的输出和/或输入,您可能还想考虑使用ProcessBuilder
而不是Runtime.getRuntime().exec()
。
pr.waitFor();
这是一个阻塞调用,意味着在此调用返回之前不会执行任何其他代码。