Java Process.waitFor()方法是怎样的

  介绍

Java  Process.waitFor()方法是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

Java Process.waitFor()方法

Process.waitFor()方法将导致当前线程等待,直到该对象的进程结束,才返回调用。

描述

java.lang.Process.waitFor()方法将导致当前的线程等待,如果必要的话,直到由该过程对象表示的进程已经终止。此方法将立即返回,如果子进程已经终止。如果子进程尚未终止,则调用线程将被阻塞,直到子进程退出。

声明

以下是java.lang.Process.waitFor()方法的声明

public  abstract  int 等待()

参数

<李>

<代码> NA

返回值

此方法返回的退出值的过程。按照惯例,0表示正常终止。

异常

<李>

<代码> NA

实例

下面的例子说明了如何使用lang.Process.waitFor()方法。

package  com.yiibai;,   {public  class  ProcessDemo    ,,public  static  void  main (String [], args), {   ,,,,,try  {   ,,,,,,,,//,create  a  new 过程   ,,,,,,,,System.out.println (“Creating 过程…“);   ,,,,,,,,Process  p =, Runtime.getRuntime () .exec (“notepad.exe");   ,   ,,,,,,,,//,cause 却;能够process 用stop  until  process  p  is 终止   ,,,,,,,,p.waitFor ();   ,   ,,,,,,,,//,when 你manually  close  notepad.exe  program  will  continue 这里   ,,,,,,,,System.out.println (“Waiting  !”);   ,   ,,,,,},catch  (Exception 交货),{   ,,,,,,,,ex.printStackTrace ();   ,,,,,},   ,,}   }

编译运行结果:

创建过程……

等。

process.waitFor()没有作用

最近在遇到关于视频需要转码用到ffmpeg使用cmd运行时,需要在cmd运行成功后进行操作,百度都说使等待,用()方法,但是总是一闪而过,没有起到等待完成的作用。

 Process  Process =, Runtime.getRuntime () .exec (“cmd /c  start  notepad.exe");
  process.waitFor (); 

java的Runtime.getRuntime () .exec (commandStr)可以调用执行cmd指令。

<李>

<代码> cmd/c dir> <李>

<代码> cmd/k dir> <李>

<代码> cmd/c开始dir> <李>

<代码> cmd/k开始dir>

这个代码中的process.waitFor();并没有起到作用

后面的代码在调用的notepad.exe还没结束就继续运行了,

结果发现是因为在exec里面用了开始

这样的后果是process.waitFor()等待的是一个一闪而过的用来打开exe的命令行窗口而已。

去掉开始这个词,就会等到exe结束程序在继续执行了。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

Java Process.waitFor()方法是怎样的