java 中的process类

本文介绍了 Java 中 Process 类的基本用法,包括如何创建进程、获取进程的输入、输出及错误流等。同时,还讲解了如何等待进程结束以及如何销毁进程。

JAVA 中 process 类的使用

 Process是一个抽象类  封装了一个进程

创建 process

Process p =  Runtime.getRuntime().exec(cmd);  cmd 是字符串类型 也可以是字符串类型的数组 内容就是 命令行

Process p =ProcessBuilder.start();

Process 类提供了子进程的输入流,子进程的输出流子进程的输入流,等待进程完成,检查进程的推出状态以及销毁进程的方法;

创建的子进程没有自己的控制台或终端,其所有的io操作都是通过(输入流、输出流、错误流)重定向到父进程中。

destroy()
   杀掉子进程。
 exitValue()
   返回子进程的出口值。
 InputStream getErrorStream()
   获得子进程的错误流。
 InputStream getInputStream()
   获得子进程的输入流。
 OutputStream getOutputStream()
   获得子进程的输出流。
 waitFor()
   导致当前线程等待,如果必要,一直要等到由该 Process 对象表示的进程已经终止。

Process位于`java.lang`包中,它提供了执行本机进程的能力。通过Process,我们可以启动一个本机进程,获取它的输入流、输出流和错误流,向进程输入数据,等待进程执行完成等等。 下面是一些Process的常用操作: 1. 启动进程 可以使用`Runtime.getRuntime().exec(command)`方法来启动一个进程,在Windows系统中,`command`参数可以是一个可执行程序的绝对路径或者一个批处理文件的绝对路径。在Linux或者MacOS系统中,`command`参数应该包含进程的执行命令和参数,如`/bin/bash -c "ls -l"`。 例如,以下代码可以启动Windows操作系统中的记事本程序: ```java Process p = Runtime.getRuntime().exec("notepad.exe"); ``` 2. 获取输入流、输出流和错误流 可以使用`Process`的`getInputStream()`、`getOutputStream()`和`getErrorStream()`方法来获取进程的输入流、输出流和错误流。通过这些流,我们可以向进程输入数据,获取进程的输出和错误信息。 例如,以下代码可以启动Windows操作系统中的命令行窗口,并向其输入`dir`命令,然后获取窗口的输出信息: ```java Process p = Runtime.getRuntime().exec("cmd.exe"); OutputStream out = p.getOutputStream(); out.write("dir\n".getBytes()); out.flush(); InputStream in = p.getInputStream(); byte[] buffer = new byte[1024]; int len = in.read(buffer); System.out.println(new String(buffer, 0, len)); ``` 3. 等待进程执行完成 可以使用`Process`的`waitFor()`方法来等待进程执行完成。这个方法会一直阻塞当前线程,直到进程执行完成为止。 例如,以下代码可以启动Windows操作系统中的记事本程序,并等待其关闭: ```java Process p = Runtime.getRuntime().exec("notepad.exe"); p.waitFor(); ``` 4. 销毁进程 可以使用`Process`的`destroy()`方法来销毁进程。这个方法会向进程发送一个中断信号,让进程自行关闭。 例如,以下代码可以启动Windows操作系统中的记事本程序,并在3秒后强制关闭: ```java Process p = Runtime.getRuntime().exec("notepad.exe"); Thread.sleep(3000); p.destroy(); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值