Process-与操作系统中的进程进行交互

发布时间 2023-11-06 16:33:21作者: C_C_菜园

Process介绍

在Java中,Process类是一个抽象类,它提供了与操作系统中的进程进行交互的方法。当你在Java程序中启动一个新的进程(例如,运行一个外部程序或脚本)时,JVM会创建一个Process实例来代表这个新的进程。

Process类提供了以下主要的方法:

  • getInputStream():获取进程的标准输出流。你可以从这个流中读取进程的输出。
  • getErrorStream():获取进程的错误输出流。你可以从这个流中读取进程的错误输出。
  • getOutputStream():获取进程的标准输入流。你可以向这个流中写入数据,作为进程的输入。
  • waitFor():等待进程结束,并返回进程的退出状态码。
  • exitValue():获取进程的退出状态码。如果进程还没有结束,这个方法会抛出IllegalThreadStateException。
  • destroy():强制结束进程。

以下是一个使用Process类的例子,它启动一个新的进程来运行ping命令:

Process process = Runtime.getRuntime().exec("ping www.google.com");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}
process.waitFor();

在这个例子中,我们首先使用Runtime.exec方法启动一个新的进程来运行ping命令。然后,我们创建一个BufferedReader来读取进程的输出。最后,我们使用Process.waitFor方法等待进程结束。

使用

  • 使用Runtime.getRuntime().exec("java -c"),相当于调用三方库(三方程序)