I am trying to redirect output of a process started with the help of ProcessBuilder using following code
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();
But it failed with exception
Exception in thread “main”
java.io.IOException: Cannot run
2>&1 <& – &”: java.io.IOException:
error=2, No such file or directory at
It works fine when I just pass “/myScript”
Script is perl, any suggestions/coments on why it is failing?
I tried passing all of them as seperate arguments like
new ProcessBuilder("/myScript",">>","/myLogFile"), it executes but it does not redirect to log file and also it does not take envVars.