java 截取 cmd命令返回的字符串
时间: 2024-01-23 21:35:03 浏览: 89
在java中截取字符串
4星 · 用户满意度95%
在Java中,可以使用`ProcessBuilder`和`Process`类来执行命令并截取其返回的字符串。下面是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CommandOutputExample {
public static void main(String[] args) {
try {
String command = "dir"; // 要执行的命令,这里以执行dir命令为例
// 创建进程构建器
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("cmd.exe", "/c", command); // Windows下执行命令需要用到cmd.exe
// 启动进程并获取其输出流
Process process = processBuilder.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
// 读取命令执行结果
String line;
StringBuilder output = new StringBuilder();
while ((line = reader.readLine()) != null) {
output.append(line).append("\n");
}
// 等待命令执行完成
int exitCode = process.waitFor();
if (exitCode == 0) {
System.out.println("命令执行成功!");
System.out.println("命令输出结果:\n" + output.toString());
} else {
System.out.println("命令执行失败!");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们使用`ProcessBuilder`来创建一个进程构建器,并指定要执行的命令。然后,我们启动进程并获取其输出流。通过读取输出流,我们可以获取命令执行的结果。
请注意,这个示例中使用的是Windows下的命令执行方式,因为使用了`cmd.exe`。如果您在其他操作系统上运行,可能需要调整执行命令的方式。另外,还要注意处理进程的异常情况,以及等待命令执行完成。
这只是一个简单的示例,您可以根据实际需求进行调整和扩展。
阅读全文