我試圖重定向過程的輸出開始的ProcessBuilder的幫助下使用下面的代碼的ProcessBuilder重定向輸出
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();
但與例外的線程失敗
異常「主要」 的java .io.IOException:無法運行 程序 「/ myScript >> /myLogFile 2> & - & 「:java.io.IOException異常: 錯誤= 2,在 java.lang.ProcessBuilder.start(ProcessBuilder.java:460)沒有這樣的文件或目錄
時,我只是通過它工作正常」/ myScript「
腳本是perl,任何建議/評論爲什麼它失敗?
我試過將它們全部作爲獨立參數傳遞,如new ProcessBuilder("/myScript",">>","/myLogFile")
,它會執行,但它不會重定向到日誌文件,也不會使用envVars。
是的,謝謝,看起來像Java 7將有能力明確指定重定向。 – Chandra 2011-05-13 02:12:14