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实现
- private String getPID() {
- String pid = null;
- String cmd = "tasklist /nh /FI \"IMAGENAME eq eclipse.exe\"";
- try {
- Runtime runtime = Runtime.getRuntime();
- Process process = runtime.exec(cmd);
- BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
- String line = null;
- while((line=br.readLine()) != null){
- if(line.indexOf("eclipse.exe") != -1){
- String[] lineArray = line.split(" ");
- pid = lineArray[17].trim();
- if(pid.equals(RFT_ECLIPSE_PID)){
- continue;
- } else {
- return pid;
- }
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return pid;
- }
- try {
- RBD_ECLIPSE_PID = getPID();
- Runtime.getRuntime().exec("taskkill /F /PID "+RBD_ECLIPSE_PID);
- } catch (IOException e1) {
- e1.printStackTrace();
- }