"使用ProcessBuilder進行輸出重新導向"
<p>我正在嘗試使用以下程式碼將ProcessBuilder啟動的進程的輸出重定向:</p>
<pre class="brush:php;toolbar:false;">ProcessBuilder pb = new ProcessBuilder("/myScript >> /myLogFile 2>&1 <& - &");
Map<String, String> env = pb.environment();
env.clear();
env.put("var1", "val1");
env.put("var2", "val2");
pb.redirectErrorStream(true);
Process p = pb.start();</pre>
<p>但它失敗了,拋出例外:</p>
<blockquote>
<p>Exception in thread "main"
java.io.IOException: Cannot run
program
"/myScript >>
/myLogFile
2>&1 <& - &": java.io.IOException:
error=2, No such file or directory at
java.lang.ProcessBuilder.start(ProcessBuilder.java:460)</p>
</blockquote>
<p>當我只傳遞"/myScript"時,它正常工作。 </p>
<p>腳本是perl,為什麼它失敗的任何建議/評論? </p>
<p>我嘗試將它們作為單獨的參數傳遞,例如<code>new ProcessBuilder("/myScript",">>","/myLogFile")</code>,它可以執行,但不會重新導向到日誌文件,也不會接受envVars。 </p>