📜  在 java 中执行多行 shell 命令(1)

📅  最后修改于: 2023-12-03 15:37:21.202000             🧑  作者: Mango

在 Java 中执行多行 shell 命令可以通过 Runtime 类的 exec() 方法实现。该方法使用字符串数组作为参数,每个字符串代表一个单独的命令和它的参数列表。相应地,使用分号分隔这些命令可以实现执行多行 shell 命令。

下面给出一个简单的示例代码,展示如何在 Java 中执行多行 shell 命令:

import java.io.IOException;

public class ShellCommand {
    public static void main(String[] args) {
        try {
            // 多行 shell 命令
            String[] commands = {"echo 'Hello World';",
                                 "ls -a;",
                                 "cd /; pwd;"};
            // 获取 Runtime 实例
            Runtime runtime = Runtime.getRuntime();
            // 执行命令
            Process process = runtime.exec(commands);
            // 等待命令执行完成
            process.waitFor();
            // 输出命令执行结果
            System.out.println(new String(process.getOutputStream().readAllBytes()));
        } catch (IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

上述代码定义了一个字符串数组,其中包含三个字符串,分别代表三个 shell 命令和它们的参数。然后,Runtime 类的 exec() 方法被调用,将该字符串数组作为参数传递给它执行。最后,我们等待命令执行完成并输出命令执行结果。

在执行多行 shell 命令时,需要注意每个命令之间使用分号 ; 进行分隔。同时,为了避免命令执行失败的情况,我们需要在程序中添加异常处理代码。

综上,我们可以通过 Runtime 类的 exec() 方法在 Java 中执行多行 shell 命令,只需要将这些命令按照顺序放在一个字符串数组中,然后使用分号分隔即可。