Java生成新的cmd.exe并获取输​​出流

时间:2015-04-27 01:01:46

标签: java process console

我试图在java中生成一个新控制台并获取输出流。

我试过这种方式:

Process p = Runtime.getRuntime().exec("cmd.exe /c start");
BufferedWriter out = new BufferedWriter( new OutputStreamWriter(
                                         p.getOutputStream()));

控制台产生但我无法在流上写东西!

另一种方式:

Process p = Runtime.getRuntime().exec("cmd.exe");
  BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
               p.getOutputStream()));

这次我可以写入流,但控制台不会产生!

我缺乏知识:/

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

以第一种方式启动cmd,它启动了另一个您无法访问的进程。如果需要输入/输出流,请不要使用这种方式。

另一种方式是对的。流程运行正常。但是你没有为它提供任何输入。获取输入流并发送一些命令,如“cd foo \ n”,“dir \ n”。如您所见,这是常规流,因此需要执行该命令。然后你也可以使用输出流。

有很多examples怎么办。