A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 柳小龙 于 2013-8-5 09:12 编辑

为何执行Runtime.getRuntime().exec("cmd /c dir")后没有输出?感觉很迷茫,力士们帮忙解决下?

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
看到/C以为了运行完直接关闭了,后来试了试/K,运行完不关闭,也不行,但是硬盘倒是狂读了一阵,不知道打印到哪去了。后来试了试打开新窗口就没有问题。
cmd /c start dir 用这个命令会弹出一个新窗口,但是运行完dir后也没关闭。
后来又试了试cmd /k start dir,结果好像差不多啊。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
参考:
http://www.cfanz.cn/index.php?c=article&a=read&id=33583
http://www.cnblogs.com/xxpal/articles/824963.html
为什么没反应,第一篇这样解释:
因为一些本机平台只提供有限的缓冲区大小为标准输入和输出流,未能及时写输入流或读取输出流的子流程可能会导致子流程阻止,甚至死锁。
说实话我也看不太懂
你可以尝试把结果读取到控制台上:
  1. Process p=Runtime.getRuntime().exec("cmd.exe /c dir h:\\");
  2.          BufferedReader bufr=new BufferedReader(new InputStreamReader(p.getInputStream()));
  3.        String line=null;
  4.        while((line=bufr.readLine())!=null)
  5.                System.out.println(line);
  6.        p.waitFor();
复制代码

评分

参与人数 1技术分 +1 黑马币 +2 收起 理由
神之梦 + 1 + 2 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马