Java中获取进程ID以及杀死进程的方法

来源:互联网 发布:淘宝图片清理工具3.0 编辑:程序博客网 时间:2024/05/16 15:51

tasklist介绍

Tasklist命令用来显示运行在本地或远程计算机上的所有进程,带有多个执行参数。使用格式为:Tasklist [/S system [/U username [/P [password]]]] [/M [module] | /SVC | /V] [/FI filter] [/FO format] [/NH]。其中: 

/S system 指定连接到的远程系统。 

/U [domain\]user 指定使用哪个用户执行这个命令。  

/P [password] 为指定的用户指定密码。  

/M [module] 列出调用指定的DLL模块的所有进程。如果没有指定模块名,显示每个进程加载的所有模块。  

/SVC 显示每个进程中的服务。  

/V 显示详细信息。

/FI filter 显示一系列符合筛选器指定的进程。  

/FO format 指定输出格式,有效值:TABLE、LIST、CSV。  

/NH 指定输出中不显示栏目标题。只对TABLE和CSV格式有效。

taskkill介绍

taskkill是用来终止进程的。具体的命令规则如下:  TASKKILL [/S system [/U username [/P [password]]]]  { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]  描述:  这个命令行工具可用来结束至少一个进程。  可以根据进程 id 或图像名来结束进程。  参数列表:  

/S system 指定要连接到的远程系统。  

/U [domain\]user 指定应该在哪个用户上下文  执行这个命令。  

/P [password] 为提供的用户上下文指定密码。如果忽略,提示输入。  

/F 指定要强行终止的进程。  /FI filter 指定筛选进或筛选出查询的的任务。  

/PID process id 指定要终止的进程的PID。  

/IM image name 指定要终止的进程的图像名。通配符 '*'可用来指定所有图像名。  

/T Tree kill: 终止指定的进程和任何由此启动的子进程。  

/? 显示帮助/用法。  筛选器:  筛选器名 有效运算符 有效值


Java实现

[java] view plaincopy
  1. private String getPID() {  
  2.         String pid = null;  
  3.         String cmd = "tasklist /nh /FI \"IMAGENAME eq eclipse.exe\"";  
  4.         try {  
  5.             Runtime runtime = Runtime.getRuntime();  
  6.             Process process = runtime.exec(cmd);  
  7.             BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));  
  8.             String line = null;  
  9.             while((line=br.readLine()) != null){  
  10.                 if(line.indexOf("eclipse.exe") != -1){  
  11.                     String[] lineArray = line.split(" ");  
  12.                     pid = lineArray[17].trim();  
  13.                     if(pid.equals(RFT_ECLIPSE_PID)){  
  14.                         continue;  
  15.                     } else {  
  16.                         return pid;  
  17.                     }  
  18.                 }  
  19.             }  
  20.         } catch (IOException e) {  
  21.             e.printStackTrace();  
  22.         }  
  23.         return pid;  
  24.     }  

[java] view plaincopy
  1. try {  
  2.     RBD_ECLIPSE_PID = getPID();  
  3.     Runtime.getRuntime().exec("taskkill /F /PID "+RBD_ECLIPSE_PID);  
  4. catch (IOException e1) {  
  5.     e1.printStackTrace();  
  6. }   
转自:http://blog.csdn.net/pfyuit/article/details/7181973
原创粉丝点击