java 执行命令行—代码示例

wangyetexiao

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

java 执行命令行—代码示例

执行命令行是指在Java程序中通过代码来执行操作系统的命令行命令。这种方式可以让我们在Java程序中调用外部的命令行工具,并获取其执行结果。Java提供了`ProcessBuilder`类来实现执行命令行的功能。

我们需要创建一个`ProcessBuilder`对象,并将要执行的命令作为参数传递给它的构造函数。然后,我们可以通过调用`start()`方法来启动命令行进程,并返回一个`Process`对象。

接下来,我们可以通过`Process`对象来获取命令行进程的输入、输出和错误流。通过调用`getInputStream()`、`getOutputStream()`和`getErrorStream()`方法分别获取输入流、输出流和错误流。我们可以使用这些流来读取命令行进程的输出结果或向其输入数据。

我们需要等待命令行进程执行完毕。通过调用`waitFor()`方法,我们可以阻塞当前线程,直到命令行进程执行完毕。

下面是一个示例代码,演示了如何执行命令行并获取其输出结果:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

public class CommandLineExecutionExample {

public static void main(String[] args) {

try {

// 创建命令行进程

ProcessBuilder processBuilder = new ProcessBuilder("ls", "-l");

// 启动命令行进程

Process process = processBuilder.start();

// 获取命令行进程的输出流

InputStream inputStream = process.getInputStream();

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

// 读取命令行进程的输出结果

String line;

while ((line = reader.readLine()) != null) {

System.out.println(line);

}

// 等待命令行进程执行完毕

int exitCode = process.waitFor();

System.out.println("命令行进程执行完毕,退出码:" + exitCode);

} catch (IOException | InterruptedException e) {

e.printStackTrace();

}

}

}

在上面的示例代码中,我们创建了一个`ProcessBuilder`对象,并将要执行的命令`ls -l`作为参数传递给它的构造函数。然后,我们启动命令行进程,并获取其输出流。通过读取输出流的内容,我们可以将命令行的执行结果输出到控制台。我们等待命令行进程执行完毕,并打印出其退出码。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码