java调用命令行Runtime.getRuntime().exec()阻塞问题
来源:互联网 发布:专业 有限元分析软件 编辑:程序博客网 时间:2024/05/17 02:36
先上代码
- Process process = Runtime.getRuntime().exec(cmds);
- InputStream in = process.getInputStream();
- StringBuilder sBuilder = new StringBuilder();
- int a;
- while ((a = in.read()) != -1) {
- sBuilder.append((char) a);
- }
执行上面的代码的时候,如果cmds里的命令在后台打印出许多内容的话,process的 inputstream和errorstream的缓冲区会被填满,这个时候如果你不吧内容读出来的话就会阻塞在那里,而执行的进程因为内容打印不出来也会阻塞在那里不动。
所以这种情况最好是开两个单独的线程去分别读inputstream和errorstream的内容。
0 0
- java调用命令行Runtime.getRuntime().exec()阻塞问题
- java调用命令行Runtime.getRuntime().exec()函数碰到的阻塞问题
- Runtime.getRuntime().exec(command)的阻塞问题
- Runtime.getRuntime().exec()进程阻塞问题
- Runtime.getRuntime().exec()进程阻塞问题
- Runtime.getRuntime().exec() 输出流阻塞问题
- Runtime.getRuntime().exec问题
- java Runtime.getRuntime().exec
- java Runtime.getRuntime().exec()
- Runtime.getRuntime().exec执行阻塞问题解决
- Runtime.getRuntime().exec()执行阻塞问题解决
- Runtime.getRuntime().exec执行阻塞问题解决 .
- Java Runtime.getRuntime().exec()详解
- Java执行Runtime.getRuntime().exec()
- Java 使用Runtime.getRuntime.exec 和 ProcessBuilder 调用外部命令
- java Runtime.getRuntime().exec 调用系统脚本/命令注意事项
- java Runtime.getRuntime().exec 调用系统脚本/命令注意事项
- 使用Runtime.getRuntime().exec()在java中调用python脚本
- 希腊人1
- Lync 2010 升级到Lync 2013 故障解决一例!
- python 之bisect
- VS2010打开VS2012的项目
- iOS Developer Library Frameworks
- java调用命令行Runtime.getRuntime().exec()阻塞问题
- poj 2479 Maximum sum (子序列和最大问题)
- 总结
- C语言 线程同步互斥生产者消费者
- 我是一只笨鸟——我想理清自己的编程能力
- Spring的applicationContext.xml常用配置
- 数组求和算法(线性递归版、二分递归版)、数组倒置(多递归基递归版)
- 《SBT in Action》- Setting up SBT and an SBT Build
- 高校俱乐部 之 人人code,整数取反