1. JAVA 操作进程
- 在此处进行简要讲解, 后续结合 IO 对进程的数据获取进行深入讲解.
- 与 JAVA 进程相关的类有两个
- Runtime 类(
java.lang.Runtime
) - ProcessBuilder 类(
java.lang.ProcessBuilder
)
- Runtime 类(
1.1. Runtime 类
每个 Java 应用程序都有一个 Runtime 类的 Runtime,
允许应用程序与运行应用程序的环境进行接口.当前运行时可以从
getRuntime
方法获得.应用程序无法创建自己的此类的实例.
1.1.1. getRuntime() 方法
定义:
public static Runtime getRuntime()
作用:
返回与当前 Java 应用程序关联的运行时对象.
Runtime 类的大多数方法都是实例方法, 必须针对当前的运行时对象进行调用.
1.1.2. exec(String command) 方法
定义:
public Process exec(String command) throws IOException
作用:
在单独的进程中执行指定的字符串命令.备注:
这是一种方便的方法.
调用表单exec(command)
的行为方式与调用exec(command, null, null)
完全相同.
1.2. ProcessBuilder 类
此类用于创建操作系统进程. 每个
ProcessBuilder
实例管理进程属性的集合.start()
方法使用这些属性创建一个新的Process
实例.start()
方法可以从同一实例重复调用, 以创建具有相同或相关属性的新子进程.
1.2.1. ProcessBuilder(String... command) 构造器
作用:
构造具有指定操作系统程序和参数的进程构建器.备注:
这是一个方便的
command
函数, 它以相同的顺序将流程构建器的命令
设置为包含与command
数组相同的字符串的字符串列表.不检查
command
是否command
于有效的操作系统命令.是
ProcessBuilder(List<String> command)
构造器的简化.
1.2.2. start() 方法
定义:
public Process start() throws IOException
作用:
使用此流程构建器的属性启动新进程.备注:
新进程将调用由指定的命令和参数
command()
按以下给出, 在工作目录directory()
, 有一个过程的环境被给出environment()
.该方法检查该命令是否为有效的操作系统命令.
哪些命令有效是依赖于系统的, 但至少该命令必须是非空字符串的非空列表.
1.3. 进程创建和操作应用实例
//在 java 中如何开启一个进程: 运行记事本程序.
public static void main(String[] args) throws Exception{
/**
* 方式1: 使用 Runtime 类中的 exec() 方法
*/
//先获取当前执行程序的运行时对象
Runtime rt = Runtime.getRuntmie();
//然后执行命令, cmd 控制台命令
rt.exec("notepad");
/**
* 方式2: 使用 ProcessBuilder 类的 start()方法
*/
//先构建对象
ProcessBuilder pb = new ProcessBuilder("notepad");
//然后执行
pb.start();
}