public class LinuxCommandExecutor {

    public static String exec(String command) {
        StringBuilder result = new StringBuilder();
        try {
            ProcessBuilder builder = new ProcessBuilder("/bin/sh", "-c", command);
            builder.redirectErrorStream(true);
            Process process = builder.start();

            try (BufferedReader reader = new BufferedReader(
                    new InputStreamReader(process.getInputStream(), "UTF-8"))) {
                String line;
                while ((line = reader.readLine()) != null) {
                    result.append(line).append("\n");
                }
            }
            process.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result.toString();
    }

    public static void main(String[] args) {
        String output = exec("uname -a");
        System.out.println(output);
    }
}

这段Java代码实现了一个Linux命令执行器,通过ProcessBuilder类执行Shell命令并获取输出结果。核心方法exec()接收命令字符串,使用ProcessBuilder启动子进程执行命令,将标准错误流重定向到标准输出流,并通过BufferedReader读取命令执行结果。最后调用waitFor()等待命令执行完成。main()方法演示了执行"uname -a"命令并打印输出。代码处理了可能的异常并返回执行结果字符串。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐