我想輸出流設置爲命令提示符是這樣的:Set System.setOut();到命令提示符
Process p = Runtime.getRuntime()
.exec("C:\\Windows\\System32\\cmd.exe /c start cls");
System.setOut(new PrintStream(p.getOutputStream()));
,但它是不工作的,爲什麼?
我想輸出流設置爲命令提示符是這樣的:Set System.setOut();到命令提示符
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方法時,它將自動刷新,寫入字節數組或寫入換行符。這樣,您寫入的任何內容都可以立即訪問該進程。
見http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html
這不是這裏的問題。 – ddmps 2013-04-21 17:11:18
好吧,我已經完成了這個'新的PrintStream(p.getOutputStream(),true)'但仍然沒有獲得cmd的消息,爲什麼? – 2013-04-21 17:13:38
見http://stackoverflow.com/questions/4157303/how-to-execute-cmd-commands-via-java(公認的答案下面的答案) – ddmps 2013-04-21 17:12:59
但不執行命令在CMD ...所以這是不可接受的。 – 2013-04-21 17:26:42