java进程

package com.process;
 
public class ProcessTest {
public static void main(String[] args) {
new ProcessUtils().start();
}
}
 
 
==================================
package com.process;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class ProcessUtils extends Thread{
public static final String FIRE_FOX = "firefox.exe";
public static final String IE = "iexplore.exe";
public static final int FIVE_MINUTE = 1000*60*5;
 public synchronized void run(){
try {
while(true){
Thread.sleep(FIVE_MINUTE);
this.findAndKillProcess();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
     }
 
public  void findAndKillProcess() {
Process p = null;
int count = 0;
try {
p = Runtime.getRuntime().exec("tasklist");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("start to kill...");
if(p != null){
BufferedReader bw = new BufferedReader(new InputStreamReader(p.getInputStream()));
String str = "";
while (true) {
try {
str = bw.readLine();
if (str != null) {
if(str.indexOf(FIRE_FOX)>-1 || str.indexOf(IE)>-1){
++count;
String[] processInfo = str.split("\\s{1,}");
System.out.println(processInfo[0]+":"+count);
Runtime.getRuntime().exec("tskill "+processInfo[1]);
 
}else{
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("Total killed "+count+" processes, done!");
}
}
上一篇:SNMP SNMP协议


下一篇:oracle 快速删除大批量数据方法(全部删除,条件删除,删除大量重复记录)