Java ProcessBuilder を使用してパイプ コマンドを実行する 質問する

Java ProcessBuilder を使用してパイプ コマンドを実行する 質問する

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");

パイプラインを実行するには、シェルを呼び出して、そのシェル内でコマンドを実行する必要があります。

おすすめ記事