我试图重定向过程的输出开始的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