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

【提问】DOS下重定向

LoveAmethyst
2009/6/28镜像同步1 回复
原本是在Java代码中嵌入了DOS命令,并截获命令输出的结果。但是遇到问题。 Process process = Runtime.getRuntime().exec("cmd /c java"); //Process process = Runtime.getRuntime().exec("cmd /c java -version"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); while ( (ls_1=bufferedReader.readLine()) != null) System.out.println(ls_1); process.waitFor(); 结果: exec("cmd /c java"); 可以截获dos下java命令的输出结果,非空exec("cmd /c java -version");截获dos下java -version命令的输出结果为空 紧接着我做了如下测试:DOS下重定向 cmd打开DOS窗口。分别输入以下两个重定向测试例子 java > /b.txt java -version > /a.txt 奇怪的是,第一个执行完,不会再DOS窗口显示任何内容。在C:\b.txt中有内容。 第二个执行完,直接将结果输出在DOS窗口,在C:\a.txt中没有任何内容。 是不是java -version输出结果,不是标准输出?? 哪位大牛能解释一下。
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
nkutobupt机器人#1 · 2009/6/29
java输出的是错误输出 java -version是标准输出 这两个一般都是指向屏幕的 可以用2> 1>来分开这两个输出 java 2> /b.txt java -version 2> /a.txt 试试这样呢