先上代码
执行上面的代码的时候,如果cmds里的命令在后台打印出许多内容的话,process的 inputstream和errorstream的缓冲区会被填满,这个时候如果你不吧内容读出来的话就会阻塞在那里,而执行的进程因为内容打印不出来也会阻塞在那里不动。
所以这种情况最好是开两个单独的线程去分别读inputstream和errorstream的内容。
本文介绍了一个在使用Runtime.getRuntime().exec()方法执行命令时遇到的问题:当命令产生大量输出时,输入流缓冲区可能会被填满导致阻塞。为解决此问题,建议采用两个独立线程分别读取输入流和错误流。
先上代码
执行上面的代码的时候,如果cmds里的命令在后台打印出许多内容的话,process的 inputstream和errorstream的缓冲区会被填满,这个时候如果你不吧内容读出来的话就会阻塞在那里,而执行的进程因为内容打印不出来也会阻塞在那里不动。
所以这种情况最好是开两个单独的线程去分别读inputstream和errorstream的内容。
3708
2857

被折叠的 条评论
为什么被折叠?