解决Runtime.exec() 无法读取命令输出
来源:互联网 发布:mac显示电池百分比 编辑:程序博客网 时间:2024/06/06 02:18
关键:输出分2种,标准输出和错误输出,获取正确的输出流才能取到想要的结果
Runtime.exec() 在windows中执行命令的时候,在cmd中能看到输出,但是代码却读取不到,应为我们通常用标准输出流,结果就是读不到结果为null
代码一直等着。也就是为什么我们用 cmdxx 1>result.log 无结果 cmdxx 2>result.log 却能取到结果,1是标准输出 2错误输出
错误输出流例子
try { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("javac"); InputStream stderr = proc.getErrorStream(); InputStreamReader isr = <span style="color:#ff0000;">new InputStreamReader(stderr); </span> BufferedReader br = new BufferedReader(isr); String line = null; System.out.println("<ERROR>"); while ((line = br.readLine()) != null) System.out.println(line); System.out.println("</ERROR>"); int exitVal = proc.waitFor(); System.out.println("Process exitValue: " + exitVal); } catch (Throwable t) { t.printStackTrace(); }标准输出流例子
try { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec("dir"); InputStream stdin = proc.getInputStream(); InputStreamReader isr = <span style="color:#ff0000;">new InputStreamReader(stdin); </span> BufferedReader br = new BufferedReader(isr); String line = null; System.out.println("<OUTPUT>"); while ((line = br.readLine()) != null) System.out.println(line); System.out.println("</OUTPUT>"); int exitVal = proc.waitFor(); System.out.println("Process exitValue: " + exitVal); } catch (Throwable t) { t.printStackTrace(); }
参考:http://berdy.iteye.com/blog/810223
0 0
- 解决Runtime.exec() 无法读取命令输出
- Runtime.getRuntime().exec()执行一连串命令阻塞解决
- 为什么Runtime.exec("ls")没有任何输出?
- 为什么Runtime.exec("ls")没有任何输出?
- Runtime.getRuntime().exec() 输出流阻塞问题
- Runtime.exec 调用OS命令特例
- java使用Runtime.exec执行linux命令
- java使用Runtime.exec执行linux命令
- 用Runtime.getRuntime().exec(cmd)执行命令
- java使用Runtime.exec执行linux命令
- 整理java Runtime.getRuntime().exec | 命令
- 使用java Runtime exec调用ping命令
- Java Runtime.exec 执行shell命令
- runtime.exec
- Runtime.exec()
- runtime exec
- runtime.exec()
- Runtime.getRuntime().exec() 输出流阻塞的解决方法
- PHP解决网站大数据大流量与高并发
- Android 高仿知乎日报(2)
- 单点登录(SSO)、CAS介绍
- 包含min函数的栈
- KMP
- 解决Runtime.exec() 无法读取命令输出
- Java动态代理
- RecyclerView瀑布流式布局、长按删除
- C++用string 定义字符串数组
- 模式识别概论
- 关于js中按钮类型是image时表单验证问题---点击一次可以验证再次点击直接提交--的问题
- 百度翻译,窗体调用js
- OGG 中 SUPPRESSTRIGGERS参数的用法
- poj3172 Scales DFS深度优先搜索+剪枝