我试图使用以下代码重定向在ProcessBuilder的帮助下启动的进程的输出
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);
Process p = pb.start();
但它失败了例外
Exception in thread “main”
java.io.IOException: Cannot run
program
“/myScript >>
/myLogFile
2>&1
error=2, No such file or directory at
java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
当我传递“/ myScript”时,它工作正常
脚本是perl,任何关于它为什么失败的建议/评论?
我尝试将所有这些作为单独的参数传递,如新的ProcessBuilder(“/ myScript”,“>>”,“/ myLogFile”),它会执行,但它不会重定向到日志文件,也不会使用envVars.