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

问题描述 投票:0回答:1

我正在尝试在 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()));

这次我可以写入流,但控制台没有生成!

我缺乏知识:/

提前谢谢您。

java process console
1个回答
0
投票

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

另一种方式是正确的。进程运行良好。但您没有为此提供任何输入。获取输入流并发送一些命令,例如“cd foo ”,“目录 “。正如你所看到的,这是常规流,因此需要执行命令。然后你也可以使用输出流。

有很多示例如何做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.