자식 프로세스가 완료 될 때까지 Java 부모 프로세스를 대기시키는 방법. 나는 runtime.exec
와 processBuilder.pb
으로 시도 :Windows에서 하위 프로세스가 완료되거나 중단되지 않습니다?
String cmd = "ffmpeg -i input.vob output.mp4"
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(cmd);
proc.waitFor();
이 작은 입력 파일 (예를 들어 10MB 미만)과 함께 작동합니다. 큰 입력 파일을 주면 프로그램이 중단됩니다. 출력 파일이 부분적으로 만들어지고 파일 생성이 중지되고 제어가 반환되지 않습니다. 심지어 proc.join(10000);
도 유용한 결과를주지 못했습니다. 여기에서 부모 프로세스는 자식 프로세스 (ffmpeg)가 완료되기 전에 종료됩니다.
이 문제를 극복하는 방법은 무엇입니까?
읽기와 [때 Runtime.exec의()하지 않습니다 (* http://www.javaworld.com/article/2071275/을 모두 * 권고를 구현 core-java/when-runtime-exec --- won-t.html). 그렇다면'exec (..)'를 참조하고'ProcessBuilder'를 사용하여'Process'를 빌드하십시오. 또한'String args'를 공백을 포함하는 인수를 설명하기 위해'String [] args'로 나눕니다. –