Runtime.exec() によるパイプされたコマンドの実行
固有のクロスプラットフォームの課題にもかかわらず、Runtime.exec() メソッドは制限された機能を提供します。 Java でのパイプのサポート。これを活用する方法は次のとおりです。
オプション 1: シェル スクリプトの利用
回答で提案されているように、パイプ コマンドをカプセル化する中間スクリプトを作成できます。例:
#! /bin/sh ls /etc | grep release
次に、Runtime.exec() 経由でこのスクリプトを実行します:
Process process = Runtime.getRuntime().exec(new String[] {"/path/to/script"});
オプション 2: パイプ コマンドを明示的に渡す
シェルをバイパスするには、Runtime.exec() 引数内でパイプコマンドを指定できます。 array:
String[] cmd = { "/bin/sh", "-c", "ls /etc | grep release" }; Process process = Runtime.getRuntime().exec(cmd);
これにより、シェルが明示的なコマンドで呼び出され、それに応じて実行されることが保証されます。
以上がJava の Runtime.exec() を使用してパイプされたコマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。