2011-08-31 7 views

답변

3

프로세스에 대한 참조를 유지하고 프로세스가 중지되면 프로세스가 중단됩니다.

Process proc = Runtime.getRuntime().exec("cmd /c start update.bat"); 
int exitVal = proc.waitFor(); 

link (When Runtime.exec() won't)의 좋은 예입니다. 전체 기사를 읽으면 exec 명령의 많은 함정을 피하고 이해할 수 있습니다.

그러면 다른 프로세스를 호출하는 더 현대적인 방법 인 ProcessBuilder을 읽을 수 있습니다.

+0

많이 고맙습니다 .... – Anand

1

당신은 기본 Java ProcessBuilder를 사용할 수 있습니다.

ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "start", "update.bat"); 
    builder.start(); 
    builder.waitFor(); 

waitFor에 대한 호출이 차단됩니다, 그것은 당신이 당신의 배치 스크립트가 완료 알고 반환 일단 그렇게.

또는 commons-exec jar를 사용할 수 있습니다. 결과를 확인하는 데 더 많은 옵션이 있으며 스레드를 차단하지 않습니다. 작동 원리는 this example을 참조하십시오.

관련 문제