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

Linda Hamilton
リリース: 2024-11-26 01:55:10
オリジナル
120 人が閲覧しました

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

パイプとリダイレクトを使用して Java から Linux シェル コマンドを実行する

Java から Linux システムと対話しようとする場合、開発者は多くの場合、次のような課題に直面します。リダイレクトやパイプなどの高度な機能を使用してシェル コマンドを実行します。このようなタスクを完了するには、Java を介してシェル コマンドを呼び出す際のニュアンスを理解することが重要です。

Runtime.exec() は、Java でシェル コマンドを実行するために一般的に使用されるメソッドです。ただし、適切なシェル環境を確立できず、リダイレクトやパイプとの互換性が制限されます。代わりに、シェル インタプリタを使用して新しいプロセスを作成し、コマンドを引数として渡すことをお勧めします。

次の修正されたコードを考えてみましょう。

Process p = Runtime.getRuntime().exec(new String[]{"csh", "-c", "cat /home/narek/pk.txt"});
ログイン後にコピー

ここでは、「csh」インタプリタは「-c」オプションを使用して起動されます。これにより、指定されたコマンドが csh シェルに直接入力されたかのように実行されます。このアプローチにより、シェル環境が効果的に確立され、必要に応じてリダイレクトやパイプを使用できるようになります。

システムに csh がインストールされていない場合は、次のように bash で置き換えることができます。

Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "ls /home/XXX"});
ログイン後にコピー

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート