>  기사  >  Java  >  Java의 런타임 Exec() 메서드가 출력을 리디렉션하지 않는 이유는 무엇입니까?

Java의 런타임 Exec() 메서드가 출력을 리디렉션하지 않는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-24 08:34:29711검색

Why is Java's Runtime Exec() Method Not Redirecting Output?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.