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> 代码是执行完dir命令后关闭命令窗口。
李> <李><代码> cmd/k dir> 代码是执行完dir命令后不关闭命令窗口。
李> <李><代码> cmd/c开始dir> 代码会打开一个新窗口后执行dir指令,原窗口会关闭。
李> <李><代码> cmd/k开始dir> 代码会打开一个新窗口后执行dir指令,原窗口不会关闭。
李>这个代码中的process.waitFor();并没有起到作用
后面的代码在调用的notepad.exe还没结束就继续运行了,
结果发现是因为在exec里面用了开始
这样的后果是process.waitFor()等待的是一个一闪而过的用来打开exe的命令行窗口而已。
去掉开始这个词,就会等到exe结束程序在继续执行了。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
Java Process.waitFor()方法是怎样的