cmd.exe를 통해 명령을 내리고 출력을 인쇄하는 Java 프로그램을 만들려고합니다. 이렇게하려면이 코드를 사용하고 있습니다.Java 명령 프롬프트 에뮬레이터
cmdLine = Runtime.getRuntime().exec("cmd.exe");
cmdLineOut = new BufferedReader(new InputStreamReader(cmdLine.getInputStream()));
cmdLineIn = new PrintWriter(cmdLine.getOutputStream());
// ...
cmdLineIn.println(command);
cmdLineIn.flush();
String s = null;
while ((s = cmdLineOut.readLine()) != null)
System.out.println(s);
비록 입력이 주어지면 출력은 절대로 출력되지 않습니다.
편집 : 해결 cmdLineOut.readLine()은 입력이 비어있을 때 null을 반환하지 않고 고정시킵니다. readLine이 끝나면 다른 코드는 실행되지 않으므로 readLine의 인쇄를 별도의 스레드에 넣기 만하면됩니다.
누군가가 더 잘 대답하고 싶다면 계속 진행하십시오.
오류 출력 – MeBigFatGuy
'dir'과 같이 실행 파일이없는 명령을 실행하려면'cmd.exe/c dir'을 호출해야합니다. – Robert
예, 처음에 그랬던 것입니다. 'cmd.exe/c cd path'를 호출하면'cmd.exe/c dir' 디렉토리가 정확하지 않으므로 환경을 유지할 방법이 필요합니다. –