Javaではシェルコマンドを実行して結果を取得するにはどうすればいいですか?
Javaでは、ProcessBuilderクラスを使用することでシェルコマンドを実行し、その結果を取得できます。
以下に例を挙げます。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ExecuteShellCommand {
public static void main(String[] args) {
String command = "ls"; // 要执行的shell命令
try {
// 创建ProcessBuilder对象
ProcessBuilder processBuilder = new ProcessBuilder(command);
// 使用ProcessBuilder执行命令
Process process = processBuilder.start();
// 通过process的输入流获取命令执行结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待命令执行完成
int exitCode = process.waitFor();
System.out.println("\n命令执行完毕,Exit Code : " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
この例では、ProcessBuilderオブジェクトを使用して指定したコマンドを実行するサププロセスを作成します。次に、getInputStream()メソッドを使用してコマンドの実行結果の入力ストリームを取得し、BufferedReaderを使用して出力を読み取ります。最後に、waitFor()メソッドを使用してコマンドの実行が完了するまで待機し、コマンドの終了コードを取得します。
上記の例ではlsコマンドを実行していますが、他のコマンドを実行する場合はcommand変数を必要なコマンドに置き換えるだけです。