在Java中,可以使用ProcessBuilder
类来执行shell命令并返回结果。
下面是一个例子:
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
变量替换为所需的命令即可。