我想在我的java应用程序中一个接一个地执行相同的批处理文件。 我想等到批处理文件完成然后再执行下一个。 我正在使用运行时然后等待,但它不起作用。
请帮助我。
答案 0 :(得分:0)
您可以尝试使用以下代码来解决问题: -
String[] command ={"/pathto/your/batch.sh", "commandLineParameter"};
//for example if you run your batch manually like 'mybatch.sh today'
// so your command line parameter is today
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectOutput(new File("/tmp/output.txt"));
//in the above output.txt you can see the output from the command
while(true){
try {
Process p = pb.start();
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}catch (Exception e1) {
e1.printStackTrace();
}
if(something)//put your condition here when to break the loop
break;
}//end of while loop
答案 1 :(得分:0)
您可以使用ProcessBuilder参考:ProcessBuilder 或Apache Commons Exec
查找Apache Commons Exec的示例。 它为您解决了许多与您的方法相关的常见问题。