命令行工具类 - RuntimeUtil
# 命令行工具类 - RuntimeUtil
简介
RuntimeUtil
是 Hutool 提供的一个用于执行命令行命令的工具类。它封装了 JDK 的 Process
类,简化了命令行的执行和结果的获取。无论是在 Windows 还是 Linux 下,RuntimeUtil
都可以用来执行相应的命令,并获取命令执行后的输出结果。
# 1. 执行命令行命令并获取 Process
对象
RuntimeUtil
提供了 exec
方法,用于执行命令行命令,返回 Process
对象。通过 Process
对象,可以进一步读取执行命令后的返回内容。
import cn.hutool.core.util.RuntimeUtil;
import java.io.InputStream;
import java.util.Scanner;
public class RuntimeUtilExample {
public static void main(String[] args) {
// 执行命令行命令
Process process = RuntimeUtil.exec("ipconfig");
// 获取命令执行后的输入流
InputStream inputStream = process.getInputStream();
// 使用 Scanner 读取命令输出内容
Scanner scanner = new Scanner(inputStream, "GBK"); // Windows 下常用 GBK 编码读取
while (scanner.hasNextLine()) {
System.out.println(scanner.nextLine());
}
scanner.close();
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
exec(String... cmds)
:执行命令行命令,返回Process
对象。cmds
:命令行参数数组。- 返回值:
Process
对象,用于获取命令的执行结果或进行进一步操作。
作用: 执行命令行命令并返回
Process
对象,以便进一步处理命令的输出结果。实际开发场景: 在需要与系统交互或调用外部程序时,可以使用此方法执行命令,并通过
Process
对象读取命令执行的结果。
# 2. 快捷方法:执行命令并返回字符串结果
RuntimeUtil
提供了 execForStr
方法,用于执行系统命令,并直接返回执行结果的字符串表示。
import cn.hutool.core.util.RuntimeUtil;
public class RuntimeUtilExample {
public static void main(String[] args) {
// 执行系统命令并获取结果字符串
String result = RuntimeUtil.execForStr("ipconfig");
System.out.println("命令执行结果: \n" + result);
}
}
2
3
4
5
6
7
8
9
execForStr(String... cmds)
:执行系统命令,并返回结果字符串。cmds
:命令行参数数组。- 返回值:命令执行后的结果字符串。
作用: 快速执行系统命令,并获取执行结果的字符串表示,适用于需要直接获取命令输出的场景。
实际开发场景: 在需要简单执行命令并获取结果时,可以使用此方法,如获取系统信息、执行简单的文件操作等。
# 3. 快捷方法:执行命令并返回结果行列表
RuntimeUtil
提供了 execForLines
方法,用于执行系统命令,并将命令执行的结果按行读取并返回为列表。
import cn.hutool.core.util.RuntimeUtil;
import java.util.List;
public class RuntimeUtilExample {
public static void main(String[] args) {
// 执行系统命令并获取结果行列表
List<String> resultLines = RuntimeUtil.execForLines("ipconfig");
System.out.println("命令执行结果行: ");
for (String line : resultLines) {
System.out.println(line);
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
execForLines(String... cmds)
:执行系统命令,并将结果按行读取为列表。cmds
:命令行参数数组。- 返回值:命令执行后的结果行列表。
作用: 执行系统命令,并按行获取结果,适用于需要逐行处理命令输出的场景。
实际开发场景: 在需要处理命令输出的多行结果时,可以使用此方法,如解析系统状态、读取日志输出等。
# 4. 获取系统环境变量
除了执行命令行命令外,RuntimeUtil
还可以用于获取系统的环境变量。
import cn.hutool.core.util.RuntimeUtil;
public class RuntimeUtilExample {
public static void main(String[] args) {
// 获取系统环境变量
String path = RuntimeUtil.getSystemEnv("PATH");
System.out.println("系统环境变量 PATH: " + path);
}
}
2
3
4
5
6
7
8
9
getSystemEnv(String key)
:获取系统环境变量的值。key
:环境变量的名称。- 返回值:环境变量的值。
作用: 通过系统环境变量获取指定配置信息,适用于需要访问系统配置的场景。
实际开发场景: 在需要获取系统环境变量或路径时,可以使用此方法,如获取 JAVA_HOME、PATH 等环境变量。
总结
RuntimeUtil
工具类在执行命令行命令和处理系统交互方面提供了便捷且强大的工具方法。它适用于各种需要与系统交互或调用外部程序的场景,帮助开发者更高效地进行命令行操作和结果处理,提高开发效率。