나는 아래처럼 내 자바 코드 내에서 배치 파일을 실행 :배치 파일이 Java 끝에서 실행될 때 어떻게 알림을받을 수 있습니까?
Runtime.getRuntime().exec("cmd /c start update.bat");
내가이 배치 스크립트가 완료되면 내가 어떤 통지를받을 수 있는지 여부를 알고 싶어요. 가능한가?
감사합니다,
아난드 코드 샘플 당신이 알아야 할
나는 아래처럼 내 자바 코드 내에서 배치 파일을 실행 :배치 파일이 Java 끝에서 실행될 때 어떻게 알림을받을 수 있습니까?
Runtime.getRuntime().exec("cmd /c start update.bat");
내가이 배치 스크립트가 완료되면 내가 어떤 통지를받을 수 있는지 여부를 알고 싶어요. 가능한가?
감사합니다,
아난드 코드 샘플 당신이 알아야 할
프로세스에 대한 참조를 유지하고 프로세스가 중지되면 프로세스가 중단됩니다.
Process proc = Runtime.getRuntime().exec("cmd /c start update.bat");
int exitVal = proc.waitFor();
link (When Runtime.exec() won't)의 좋은 예입니다. 전체 기사를 읽으면 exec 명령의 많은 함정을 피하고 이해할 수 있습니다.
그러면 다른 프로세스를 호출하는 더 현대적인 방법 인 ProcessBuilder
을 읽을 수 있습니다.
당신은 기본 Java ProcessBuilder를 사용할 수 있습니다.
ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "start", "update.bat");
builder.start();
builder.waitFor();
waitFor
에 대한 호출이 차단됩니다, 그것은 당신이 당신의 배치 스크립트가 완료 알고 반환 일단 그렇게.
또는 commons-exec jar를 사용할 수 있습니다. 결과를 확인하는 데 더 많은 옵션이 있으며 스레드를 차단하지 않습니다. 작동 원리는 this example을 참조하십시오.
많이 고맙습니다 .... – Anand