process.waitFor()

waitFor:等待子进程执行结束,或者已终止子进程,此方法立即返回。
当RunTime对象调用exec方法后,jvm会创建一个子进程,该子进程与jvm建立三个管道连接:标准输入流、标准输出流、标准错误流。假设该子进程不断向标准输入流、标准输出流写数据,而jvm不读取的话,会导致缓冲区塞满而无法继续写数据,最终堵塞在waitFor这里。

 

现实遇到的情况:这里要一组cmd命令通过

 

Runtime.getRuntime().exec(cmd)

 

执行,现在遇到问题是,程序上是顺序执行,但是在jvm中感觉就不是了,而是随机执行,或者说不是按照顺序执行,还在验证;

 

而且,要执行的命令似乎是连续的不能正确执行,所以现在的解决办法是写了一个脚本去执行多条命令,或者取消这些命令之间的相互依赖性。

 

 

 

 

 

 



posted @ 2020-08-28 11:42  忧伤还是快乐EL  阅读(4738)  评论(0编辑  收藏  举报