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 サイトの他の関連記事を参照してください。