Java ProcessBuilder重定向输出

Java ProcessBuilder重定向输出,java,process,processbuilder,Java,Process,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"

我试图使用以下代码重定向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();
ProcessBuilder pb=newprocessbuilder(“/myScript>>/myLogFile 2>&1>
/myLogFile

2> &1>“,“/myLogFile”)
,它执行,但不重定向到日志文件,也不接受envVars。

Shell重定向运算符对。将命令放入shell脚本并执行,如图所示。或者,使用
bash-c
,如图所示。

正如您指定的,在Java7中,您可以继续使用ProcessBuilder,将唯一的可执行文件作为参数,并使用
redirectInput()
redirectOutput()
redirectError()重定向/截取其输出流
来自
ProcessBuilder
类。

是的,谢谢,看起来Java 7将具有显式指定重定向的功能。另请参见