ホームページ > Java > &#&チュートリアル > Java で「Runtime.exec()」を使用してパイプを使用してシェル コマンドを実行するにはどうすればよいですか?

Java で「Runtime.exec()」を使用してパイプを使用してシェル コマンドを実行するにはどうすればよいですか?

DDD
リリース: 2024-12-20 14:52:10
オリジナル
244 人が閲覧しました

How Can I Execute Shell Commands with Pipes in Java Using `Runtime.exec()`?

Runtime.exec() を使用したパイプの操作

Java でパイプを使用してコマンドを実行するには、次の手順に従うことができます。 :

方法 1:スクリプト

パイプ機能は通常、シェルの一部であるため、別のコマンドの代わりにスクリプトを作成して実行することが 1 つのアプローチです。以下に例を示します。

String script = "ls /etc | grep release";

Process process = Runtime.getRuntime().exec("/bin/sh", "-c", script);
ログイン後にコピー

方法 2: ProcessBuilder を使用する

別の方法は、コマンドの実行をより詳細に制御できる Java の ProcessBuilder クラスを利用することです。その方法は次のとおりです。

ProcessBuilder processBuilder = new ProcessBuilder("/bin/ls", "/etc")
                                .redirectOutput(new ProcessBuilder.Redirect().pipe())
                                .redirectErrorStream(true);

Process process = processBuilder.start();

InputStream inputStream = process.getInputStream();
byte[] buffer = new byte[16];
inputStream.read(buffer, 0, buffer.length);
System.out.println(new String(buffer));
ログイン後にコピー

方法 3: 文字列配列を使用する

最後に、文字列の配列を exec() メソッドに渡すこともできます。 , ここで、各文字列はコマンドまたは引数を表します。このアプローチは前のアプローチと似ていますが、もう少し構成が必要です。

String[] cmd = {
    "/bin/sh",
    "-c",
    "ls /etc | grep release"
};

Process process = Runtime.getRuntime().exec(cmd);
ログイン後にコピー

これらのメソッドを利用すると、Runtime.exec() を使用して Java でシェル コマンドを呼び出すときにパイプを効果的に操作できます。パイプの動作はプラットフォームによって異なる場合があるため、潜在的な違いに注意してください。

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

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