: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
은 자동으로 작성된 내용을 플러시하지 않습니다. 즉, 작성한 데이터는 즉시 랩핑되는 스트림으로 전송되지 않습니다. 그러나 new PrintStream(p.getOutputStream(), true)
을 사용하여 PrintStream
을 구성하면 println 메소드가 호출되거나 바이트 배열이 작성되거나 줄 바꿈이 작성되면 자동으로 플러시됩니다. 이 방법으로, 당신이 그것에 쓰는 모든 것은 즉시 프로세스에 액세스 할 수 있습니다.
는 http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html
여기는 문제가되지 않습니다. – ddmps
ok이 새로운 printStream (p.getOutputStream(), true)을 실행했지만 여전히 cmd에 메시지가 표시되지 않는 이유는 무엇입니까? –
이 http://stackoverflow.com/questions/4157303/how-to-execute-cmd-commands-via-java (허용 대답 아래의 답변을)를 참조 – ddmps
참조하지만 그 명령을 실행하지 않습니다 on cmd ... 허용되지 않습니다. –