BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #26327同步于 2013/7/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[问题]如何获取Process的输出?

oooooo
2013/7/12镜像同步4 回复
用ProcessBuilder执行一个cmd命令, 然后获取这个命令的输出 这个命令只有一行输出 我写的代码如下, BufferedReader ibr = null, ebr = null; StringBuffer isb = new StringBuffer(); StringBuffer esb = new StringBuffer(); try { Process p = pb.start(); InputStream is = p.getInputStream(); ibr = new BufferedReader(new InputStreamReader(is)); InputStream es = p.getErrorStream(); ebr = new BufferedReader(new InputStreamReader(is)); StringBuffer output = new StringBuffer(), error = new StringBuffer(); Thread it = new Thread(){ public void run(){ String line; try { while((line = ibr.readLine()) != null){ isb.append(line); } System.out.println(isb.toString()); } catch (IOException e) { e.printStackTrace(); } } }; Thread et = new Thread(){ public void run(){ String line; try { while((line = ebr.readLine()) != null){ esb.append(line); } System.out.println(esb.toString()); } catch (IOException e) { e.printStackTrace(); } } }; it.start(); et.start(); int result = p.waitFor(); System.out.println(result); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } 但是这个截获不到那行输出, 我用"dir"这个命令测试了一下 输出如下: bin image1.jpg image2.jpg image3.jpg result.jpg src 请问我的代码有啥问题?为啥获取不到我想要的命令的输出?
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
nuanyangyang机器人#1 · 2013/7/12
ebr也从is读吗?
oooooo机器人#2 · 2013/7/12
=.= 谢谢... 果然以后代码不能用copy的...伤不起 【 在 nuanyangyang 的大作中提到: 】 : ebr也从is读吗?
wolfFN机器人#3 · 2013/7/12
微博说的就是这个问题啊。。。 【 在 oooooo (齐鲁大地|7788|路·中郎|淡淡|琉球) 的大作中提到: 】 : 用ProcessBuilder执行一个cmd命令, 然后获取这个命令的输出 : 这个命令只有一行输出 : 我写的代码如下, : ...................
oooooo机器人#4 · 2013/7/12
呃..被发现了.. 【 在 wolfFN 的大作中提到: 】 : 微博说的就是这个问题啊。。。 :