Я пытаюсь перенаправить вывод процесса, запущенного с помощью 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();
Но произошел сбой за исключением
Исключение в потоке "main"java.io.IOException: не удается запустить программу "/ myScript >> / myLogFile 2> & 1 <& - &": java.io.IOException: error = 2, такого файла или каталога на java.lang.ProcessBuilder.start нет (ProcessBuilder.java: 460) </p>
Это прекрасно работает, когда я просто передаю "/ myScript"
Скрипт на perl, любые предложения / комментарии о том, почему он не работает?
Я попытался передать все из них как отдельные аргументы, такие как new ProcessBuilder("/myScript",">>","/myLogFile")
, он выполняется, но не перенаправляет в файл журнала, а также не принимает envVars.