FROM: http://segmentfault.com/blog/lidonghao/1190000000372192

ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理。本文简单介绍一下Process类的用法以及一些需要注意的问题。

API方法说明如下:
destroy() 杀掉子进程。
exitValue() 返回子进程的出口值。该方法不阻塞,如果此 Process 对象表示的子进程尚未终止,就会抛出IllegalThreadStateException异常,中止进程
getErrorStream() 获取子进程的错误流
getInputStream() 获取子进程的输入流
getOutputStream() 获取子进程的输出流,基本上不会用到输出流
waitFor() 导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。导致当前线程等待,如有必要,一直要等到由该 Process对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程

一个简单的例子:

 1 /**
 2  * 列出所有的进程信息
 3  */
 4 public class ListAllProcessTest {
 5     public static void main(String[] args) {
 6         BufferedReader br = null;
 7         Process process = null;
 8         try {
 9             process = Runtime.getRuntime().exec("tasklist");
10             br = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));
11             String line = null;
12             System.out.println("列出所有正在运行的进程信息:");
13             while ((line = br.readLine()) != null) {
14                 System.out.println(line);
15             }
16         } catch (IOException e) {
17             e.printStackTrace();
18         } finally {
19             if (br != null) {
20                 try {
21                     br.close();
22                 } catch (Exception e) {
23                     e.printStackTrace();
24                 }
25             }
26             if(process!=null){
27                 process.destroy();
28             }
29         }
30     }
31 }
View Code

相关文章:

  • 2022-12-23
  • 2021-11-21
  • 2021-11-22
  • 2022-01-04
  • 2022-12-23
  • 2022-12-23
  • 2021-07-26
  • 2021-11-20
猜你喜欢
  • 2022-12-23
  • 2021-09-22
  • 2021-08-18
  • 2021-10-11
  • 2022-12-23
  • 2021-10-23
相关资源
相似解决方案