2012-02-02 10 views
6

내가 지금 자바에서 이런 일을하고 있어요를 실행 한 후 자바에서 리턴 코드를받을 수 있나요 어떻게 Windows 명령 줄 명령

Process p = Runtime.getRuntime().exec("ping -n 1 -w 100 127.0.0.1") 

어떻게 창문 간부 코드를 읽을 수 있습니까? 명령에서 명령 줄 출력을 읽는 방법을 이미 알고 있지만 성공적인지 또는 실패했는지 0 또는 1로 알려주고 싶습니다.

답변

2
+0

이미 프로세스가 완료되었음을 알고 있지 않으면 waitFor()를 대신 사용해야합니다. –

6

사용 Process.exitValue() 방법을 사용할 수 있습니다. 프로세스가 아직 종료되지 않고 재 시도하는 경우 발생하는 예외를 처리해야합니다.

또는 Process.waitFor()을 사용하여 프로세스가 끝날 때까지 기다릴 수 있으며 프로세스 종료 값도 반환합니다 (덕분에 increment1).

+0

process.waitFor()는 종료 값을 리턴하므로 process.exitValue()에 대한 후속 호출이 필요 없습니다. –

+0

@ increment1 물론, 그것을 지적 해 주셔서 감사합니다. – hmjd

0

당신은

waitFor()
입니다. 그리고 나서
exitValue()
이됩니다. 코드의

4

다음 라인 :

int returnCode = p.waitFor(); 

이 블록 프로세스가 완료 될 때까지. 차단하지 않으려면 Process.exitValue() 메서드를 사용할 수도 있습니다. Java6 Process class API doc