当我用java调用一个windows命令时,可能这个命令要运行很长时间,
如何获取这个结束时间

解决方案 »

  1.   

    有些程序可以,有些立即返回。
    比如:
    java TestRuntime notepad
    运行notepad,一直等到notepad关闭之后,才继续运行,这样就很容易得到运行时间。当然你需要建立单独的线程。如果
    java TestRuntime explorer
    打开一个浏览器之后,就直接结束了,而不是等待关闭。注意,参数要给出程序的全路径。直接写notepad和explorer是因为这两个程序在路径搜索范围之内。java TestRuntime "D:\Program Files\FlashGet\flashget.exe"
    可以一直等待到flashget完全退出。
      

  2.   

    当我运行Process child = Runtime.getRuntime().exec("sox -t raw -c 1 -w -s -r 8000 D:\\wavtest\\118.wav -t wav D:\\wavtest\\song.wav");
     时,怎么判断child结束了么
      

  3.   

    搞定了,用waitFor
    Process p=Runtime.getRuntime().exec("sox -t raw -c 1 -w -s -r 8000 D:\\wavtest\\118.wav -t wav D:\\wavtest\\song.wav");
                   p.waitFor();
                   Tools.print("p.exitValue()="+p.exitValue());;
                   Process p2=Runtime.getRuntime().exec("cmd /c move D:\\wavtest\\song.wav D:\\wavtest\\song2.wav");
                   p2.waitFor();