Java のクラスを使用して、パイプを含むコマンドを実行しようとしていますProcessBuilder
。例:
ls -l | grep foo
しかし、エラーが発生します:
ls: |: no such file or directory
に続く:
ls: grep: no such file or directory
ProcessBuilder
そのコマンドはコマンド ラインからは完全に機能しますが、出力を別のコマンドにリダイレクトするコマンドを実行することはできません。
これを実現する方法はありますか?
ベストアンサー1
これは動作するはずです:
ProcessBuilder b = new ProcessBuilder("/bin/sh", "-c", "ls -l| grep foo");
パイプラインを実行するには、シェルを呼び出して、そのシェル内でコマンドを実行する必要があります。