ホームページ >Java >&#&チュートリアル >Java からリダイレクトとパイプを使用して複雑な Linux コマンドを実行するにはどうすればよいですか?

Java からリダイレクトとパイプを使用して複雑な Linux コマンドを実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-19 15:07:02981ブラウズ

How Can I Execute Complex Linux Commands with Redirections and Pipes from Java?

Java でリダイレクトとパイプを使用した Linux コマンドの実行

リダイレクトとパイプを扱う場合、Java から Linux シェル コマンドを呼び出すのは面倒な場合があります。デフォルトの Runtime.exec() メソッドは、これらの構造の処理に制限があります。

この制限を克服するには、シェル インタープリタを明示的に指定し、コマンドを引数として渡すように exec() 呼び出しを変更します。

String[] command = {"csh", "-c", "shell command"};
Process p = Runtime.getRuntime().exec(command);

この例では、シェルインタプリタとして「csh」が呼び出され、「シェルコマンド」がシェルへの引数として扱われます。この構文はリダイレクトとパイプをサポートしており、次のような複雑なコマンドを実行できます。

Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "cat file.txt | grep 'pattern'"});

「csh」や「bash」などのシェル インタープリタの可用性はシステムによって異なる場合があることに注意してください。問題が発生した場合は、代わりに利用可能なインタープリターを使用してみてください。

以上がJava からリダイレクトとパイプを使用して複雑な Linux コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。