黑马程序员技术交流社区
标题:
Runtime.getRuntime().exec("cmd /c dir")没有输出?
[打印本页]
作者:
柳小龙
时间:
2013-8-5 09:07
标题:
Runtime.getRuntime().exec("cmd /c dir")没有输出?
本帖最后由 柳小龙 于 2013-8-5 09:12 编辑
为何执行Runtime.getRuntime().exec("cmd /c dir")后没有输出?感觉很迷茫,力士们帮忙解决下?
作者:
Kid1412
时间:
2013-8-5 16:51
看到/C以为了运行完直接关闭了,后来试了试/K,运行完不关闭,也不行,但是硬盘倒是狂读了一阵,不知道打印到哪去了。后来试了试打开新窗口就没有问题。
cmd /c start dir 用这个命令会弹出一个新窗口,但是运行完dir后也没关闭。
后来又试了试cmd /k start dir,结果好像差不多啊。
作者:
张洪慊
时间:
2013-8-5 23:03
参考:
http://www.cfanz.cn/index.php?c=article&a=read&id=33583
http://www.cnblogs.com/xxpal/articles/824963.html
为什么没反应,第一篇这样解释:
因为一些本机平台只提供有限的缓冲区大小为标准输入和输出流,未能及时写输入流或读取输出流的子流程可能会导致子流程阻止,甚至死锁。
说实话我也看不太懂
你可以尝试把结果读取到控制台上:
Process p=Runtime.getRuntime().exec("cmd.exe /c dir h:\\");
BufferedReader bufr=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=null;
while((line=bufr.readLine())!=null)
System.out.println(line);
p.waitFor();
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2