关于Runtime.getRuntime().exec()截取CMD控制台输出的问题

Maktub 2014-10-18 06:36:52
Process process1 = Runtime.getRuntime().exec("javac abc.java"); //+ ">>"javac " + pathlog.txt 2>&1"
BufferedReader bufferedReader1 = new BufferedReader(new inputStreamReader(process1.getInputStream(), "gbk"));
while ((ls_1=bufferedReader1.readLine()) != null)
System.out.println(ls_1);

bufferedReader1.close();
process1.getOutputStream().close();


为什么我执行ping 命令、net命令或其它命令时,就能截取到流,面执行java abc.java时确截取不到呢。

在线等待!,谢谢谢谢
...全文
830 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
日知己所无 2014-10-26
  • 打赏
  • 举报
回复
判断是标准输入输出流还是错误流的办法如下: 执行javac abc.java>abc.log 在屏幕上显示的内容应该不是标准输入输出流的, abc.log里的内容应该是标准输入输出流的 也可以根据需要,使用重定向来获取标准输入输出流里的内容
Maktub 2014-10-19
  • 打赏
  • 举报
回复
引用 2 楼 skgary 的回复:
abc.java里怎么输出的?
abc.java里的代码是错误的,就是想得到控制台输出 的错误信息,但是获取不取,
skgary 2014-10-19
  • 打赏
  • 举报
回复
abc.java里怎么输出的?
日知己所无 2014-10-19
  • 打赏
  • 举报
回复
引用 4 楼 Ugly__Duckling 的回复:
知道因为啥 了,因为process里有getErrorStream()截取错误输出信息
标准输入输出流和错误流确实是两套东东
Maktub 2014-10-19
  • 打赏
  • 举报
回复
知道因为啥 了,因为process里有getErrorStream()截取错误输出信息
Maktub 2014-10-18
  • 打赏
  • 举报
回复
没人顶,我顶个

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧