Java에서 "process.waitFor() Never Returns" 문제 해결
Runtime.getRuntime().exec()를 사용하여 시스템 명령을 실행할 때 , process.waitFor()에 대한 후속 호출이 무기한 중단되는 상황이 발생할 수 있습니다. 다음은 몇 가지 일반적인 이유와 가능한 해결 방법입니다.
프로세스 출력 차단
이 문제의 주요 원인은 실행된 명령이 출력을 생성하고 프로그램이 출력을 읽지 못하는 경우입니다. 적절한 스트림. 결과적으로 프로그램은 명령이 완료될 때까지 기다리는 동안 버퍼 공간을 기다리면서 명령이 차단됩니다. 이로 인해 교착 상태 상황이 발생합니다.
해결책: 차단을 방지하려면 명령의 입력 스트림에서 지속적으로 읽으십시오. BufferedReader.readLine()과 같은 메서드를 사용하여 프로세스의 입력 스트림에 연결된 InputStreamReader의 출력을 사용합니다.
기타 일반적인 문제
추가 리소스:
위 내용은 내 Java `process.waitFor()`가 반환되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!