Java Process类的详解及实例代码
简介
在Java中,Process类是用于处理系统进程的类,可以通过该类启动新的进程,并与该进程交互(如:中断该进程的执行)。
Process类常用方法
1. exec()方法
该方法用于启动一个新的进程,并返回一个Process对象。该方法接受一个字符串类型的参数,参数值为要启动的进程的命令字符串。例如:
Process process = Runtime.getRuntime().exec("ping www.baidu.com");
该代码将启动一个Windows系统的命令提示符,并执行ping www.baidu.com指令。将返回该进程的Process对象,可以通过该对象与该进程进行交互。
2. destroy()方法
该方法用于中断一个进程的执行,例如:
Process process = Runtime.getRuntime().exec("ping www.baidu.com");
process.destroy();
该代码将启动一个Windows系统的命令提示符,并执行ping www.baidu.com指令。最后将通过destroy()方法中断进程的执行。
3. waitFor()方法
该方法用于等待当前进程执行结束,例如:
Process process = Runtime.getRuntime().exec("ping www.baidu.com");
process.waitFor();
该代码将启动一个Windows系统的命令提示符,并执行ping www.baidu.com指令。最后调用waitFor()方法等待进程执行结束。
4. getInputStream()方法
该方法用于获取当前进程的输入流,例如:
Process process = Runtime.getRuntime().exec("ping www.baidu.com");
InputStream inputStream = process.getInputStream();
该代码将启动一个Windows系统的命令提示符,并执行ping www.baidu.com指令。最后将获取该进程的输入流。
示例说明
示例1:启动记事本程序
以下代码将通过Java代码启动Windows系统记事本程序。
public class ProcessDemo {
public static void main(String[] args) {
try {
// 启动记事本程序
Process process = Runtime.getRuntime().exec("notepad");
// 等待进程执行结束
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
上述代码将启动Windows记事本程序,并等待该程序执行结束。
示例2:执行命令操作
以下代码将通过Java代码执行Windows系统的ping命令。
public class ProcessDemo {
public static void main(String[] args) {
try {
// 执行ping命令
Process process = Runtime.getRuntime().exec("ping www.baidu.com");
// 获取进程的输入流
InputStream inputStream = process.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 读取命令执行结果
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
// 等待进程执行结束
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
上述代码将执行Windows系统的ping命令,并通过getInputStream()方法获取该命令的输入流,最后读取该命令的执行结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Process类的详解及实例代码 - Python技术站