Java Set System.setOut();命令提示符

Java Set System.setOut();命令提示符,java,cmd,runtime.exec,Java,Cmd,Runtime.exec,我想将输出流设置为命令提示符,如下所示: Process p = Runtime.getRuntime() .exec("C:\\Windows\\System32\\cmd.exe /c start cls"); System.setOut(new PrintStream(p.getOutputStream())); 但是它不工作,为什么?默认情况下,PrintStreams不会自动刷新写入它们的内容。这意味着您写入它的数据不会立即发送到它环绕的流。但是,如果使用

我想将输出流设置为命令提示符,如下所示:

Process p = Runtime.getRuntime()
              .exec("C:\\Windows\\System32\\cmd.exe /c start cls");
System.setOut(new PrintStream(p.getOutputStream()));

但是它不工作,为什么?

默认情况下,
PrintStream
s不会自动刷新写入它们的内容。这意味着您写入它的数据不会立即发送到它环绕的流。但是,如果使用
new PrintStream(p.getOutputStream(),true)
构造
PrintStream
,则在调用任何println方法、写入字节数组或写入换行符时,它将自动刷新。通过这种方式,进程可以立即访问您向其写入的任何内容


请参见

这不是问题所在。好的,我已经做了这个
新建打印流(p.getOutputStream(),true)
但仍然没有在cmd上获得消息,为什么?请参见(接受答案下面的答案),但这不会在cmd上执行命令。。。所以这是不可接受的。