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上执行命令。。。所以这是不可接受的。