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

标签 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()));

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

我缺乏知识:/

提前致谢。

最佳答案

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

反之亦然。进程运行良好。但是您没有为此提供任何输入。获取输入流并发送一些命令,如“cd foo\n”、“dir\n”。如您所见,这是常规流,因此需要执行命令。然后你也可以使用输出流。

有很多examples怎么做。

关于Java 生成新的 cmd.exe 并获取输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29885561/

相关文章:

基于控制台的聊天。如何分离消息和输入?

java - 文本横幅小程序反转显示文本

java - Resteasy 没有找到 ExceptionMapper 提供者

java - 在进程关闭之前读取所有进程输出

c++ - 从控制台中删除单个字符

python - Notepad++ 转换为 UTF-8 多个文件

java - JAXB 如何根据更多模式验证 xml

java - java赋值中的魔数(Magic Number)问题

c - 生成任意数量的线程

使用 Kill 进程进行 Python 测试