java中Process类的操作
时间: 2024-03-06 17:47:27 浏览: 28
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();
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)