简介
在 Java 中执行 Shell 命令是与系统交互的一种常见方式。本文将详细说明在 Java 中执行 Shell 命令的不同方法。
方法 1:ProcessBuilder
ProcessBuilder 类提供了创建和管理系统进程的机制。以下是如何使用 ProcessBuilder 执行 Shell 命令:
立即学习“Java免费学习笔记(深入)”;
import java.io.IOException;public class ShellCommandExecutor { public static void main(String[] args) throws IOException { // 创建 ProcessBuilder 对象 ProcessBuilder processBuilder = new ProcessBuilder("ls", "-l"); // 设置工作目录 processBuilder.directory(new File("/home/user")); // 执行命令并获取进程 Process process = processBuilder.start(); // 从进程读取输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); }}登录后复制方法 2:Runtime.exec()
Runtime.exec() 方法允许您直接执行系统命令。它返回一个 Process 对象,代表正在运行的进程。
import java.io.IOException;public class ShellCommandExecutor { public static void main(String[] args) throws IOException { // 执行命令并获取进程 Process process = Runtime.getRuntime().exec("ls -l"); // 从进程读取输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); }}登录后复制方法 3:Java Native Interface (JNI)
JNI 可用于直接调用本机 C 代码。这是执行 Shell 命令的另一种低级方法。
注意事项
确保您具有执行 Shell 命令所需的权限。小心命令注入攻击,其中用户可以提供恶意 Shell 命令。在某些安全环境中,执行 Shell 命令可能受到限制。以上就是java如何执行shell命令的详细内容!