Java의 런타임 Exec() 메서드가 출력을 리디렉션하지 않음
Runtime.getRuntime()으로 실행된 스크립트의 출력을 리디렉션하려고 할 때. exec()를 사용하면 리디렉션이 효과가 없고 출력 파일이 생성되지 않는 문제가 발생할 수 있습니다.
이 문제를 해결하려면 리디렉션에 ProcessBuilder를 사용해야 합니다. 다음 코드 조각은 올바른 접근 방식을 보여줍니다.
<code class="java">ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh"); builder.redirectOutput(new File("out.txt")); builder.redirectError(new File("out.txt")); Process p = builder.start(); // may throw IOException</code>
이 접근 방식을 사용하면 스크립트의 표준 출력과 오류 출력이 모두 지정된 파일로 리디렉션되어 스크립트 출력이 성공적으로 캡처됩니다.
위 내용은 Java의 런타임 Exec() 메서드가 출력을 리디렉션하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!