public class CmdExec{
private boolean programFlag = false;
private static final Logger logger = Logger.getLogger(CmdExec.class);
private static CmdExec cmdExec =null;
public static CmdExec getCmdExec(){
if(cmdExec==null){
cmdExec = new CmdExec();
}
return cmdExec;
}
/**
* @Title: cmdExec
* @Description: 执行cmd命令
* @param @param cmdStr
* @return void
* @throws
*/
public void cmdExec(String cmd,String programName){
Desktop desktop = Desktop.getDesktop();
Runtime rt = Runtime.getRuntime();
Process proc = null;
String cmdStr = "tasklist /nh /fo csv";
try {
proc = rt.exec(cmdStr);
String line="";
InputStreamReader isr = new InputStreamReader(proc.getInputStream());
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
if(line.indexOf(programName)>-1){
programFlag = true;
}
}
if(!programFlag){
desktop.open(new File(cmd));
}
br.close();
isr.close();
proc.waitFor();
proc.destroy();
} catch (Exception e1) {
logger.error(cmdStr+" exec failed! " +e1.getMessage());
}
}
/**
* @Title: cmdKill
* @Description: 杀死指定的程序,程序全名称如notepad.exe
* @param @param programName
* @param @throws IOException
* @return void
* @throws
*/
public void cmdKill(String programName){
Runtime rt = Runtime.getRuntime();
Process proc = null;
String cmdStr = "tasklist /nh /fo csv";
try {
proc = rt.exec(cmdStr);
String line="";
InputStreamReader isr = new InputStreamReader(proc.getInputStream());
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
if(line.indexOf(programName)>-1){
Runtime.getRuntime().exec("taskkill /f /t /im "+programName+"");
}
}
proc.waitFor();
proc.destroy();
} catch (Exception e1) {
logger.error(cmdStr+" exec failed! "+e1.getMessage());
}
}
}