如何检查Runtime.exec(cmd)是否完成

时间:2015-06-24 07:47:15

标签: java

如何检查Runtime.exec(cmd)是否已完成?

它正在运行但是如何在java程序中检查命令是否执行?

如果我使用进程检查那么它会阻塞当前线程。如果我停止运行程序,则执行Runtime.exec(cmd)。我该怎么办?

1 个答案:

答案 0 :(得分:7)

Process实例可以帮助您通过InputStream和Outpustream来操作运行时的执行。

流程实例有一个waitFor()方法,允许当前exitValue等待子流程的终止。

要控制流程的完成,您还可以获取运行时的waitFor,但这取决于流程返回的内容。

这是一个如何使用public int runCommand(String command) throws IOException { int returnValue = -1; try { Process process = Runtime.getRuntime().exec( command ); process.waitFor(); returnValue = process.exitValue(); } catch (InterruptedException e) { e.printStackTrace(); } return returnValue; } 并获取处理结果的简单示例(请注意,这将阻止当前线程,直到进程结束)。

  void execute_all()
  {
    while (!handlers_.empty())
    {
      queued_handler handler = handlers_.top();
      handler.execute(); //point1
      handlers_.pop(); //point2
    }
  }