"출력 리디렉션을 위해 ProcessBuilder 사용"
<p>다음 코드를 사용하여 ProcessBuilder가 시작한 프로세스의 출력을 리디렉션하려고 합니다. </p>
<pre class="brush:php;toolbar:false;">ProcessBuilder pb = new ProcessBuilder("/myScript >> /myLogFile 2>&1 <& - &");
Map env = pb.environment();
env.clear();
env.put("var1", "val1");
env.put("var2", "val2");
pb.redirectErrorStream(true);
프로세스 p = pb.start();</pre>
<p>그러나 실패하여 예외가 발생했습니다: </p>
<인용문>
<p>스레드 "main"에서 예외가 발생했습니다.
java.io.IOException: 실행할 수 없습니다.
프로그램
"/myScript>>
/my로그파일
2>&1 <& - &": java.io.IOException:
오류=2, 해당 파일이나 디렉터리가 없습니다.
java.lang.ProcessBuilder.start(ProcessBuilder.java:460)</p>
</인용문>
<p>"/myScript"만 전달하면 제대로 작동합니다. </p>
<p>스크립트는 Perl입니다. 실패 이유에 대한 제안/의견이 있으신가요? </p>
<p><code>new ProcessBuilder("/myScript",">>","/myLogFile")</code>와 같은 별도의 매개변수로 전달하려고 시도했지만 작동했지만 다음으로 리디렉션되지 않습니다. 로그 파일도 허용되지 않으며 envVar도 허용되지 않습니다. </p>