📅  最后修改于: 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 命令,只需要将这些命令按照顺序放在一个字符串数组中,然后使用分号分隔即可。