次のコードを使用して、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)
「/myScript」を渡すだけで問題なく動作します
スクリプトはperlですが、なぜ失敗するのかについての提案/コメントはありますか?
それらすべてをのような個別の引数として渡してみましnew ProcessBuilder("/myScript",">>","/myLogFile")
たが、実行されますが、ログファイルにリダイレクトされず、envVarsも使用されません。