java环境jdk的bin目录下copy文件javaw.exe为affectivew.exe
脚本如下:
@echo off
tasklist | find /i "affectivew.exe" && echo [ %time:~,-3% ]存在进程affectivew.exe|| start %JAVA_HOME%\bin\affectivew.exe -jar C:\Users\Administrator\Desktop\testProess\nb-eureka.jar monitorMonkeyLog &
exit
public static void main(String[] args) throws InterruptedException {
boolean status = getTaskStatus();
System.out.println("进程运行状态:"+status);
}
public static boolean getTaskStatus(){
/*
* 下面先是获取进程列表
*/
Runtime runtime = Runtime.getRuntime();
List tasklist = new ArrayList();
try {
Process process = runtime.exec("tasklist");
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String s = "";
while ((s = br.readLine()) != null) {
if ("".equals(s)) {
continue;
}
tasklist.add(s+" ");
}
// 获取每列最长的长度
String maxRow = tasklist.get(1) + "";
String[] maxCol = maxRow.split(" ");
// 定义映像名称数组
String[] taskName = new String[tasklist.size()];
for (int i = 0; i < tasklist.size(); i++) {
String data = tasklist.get(i) + "";
for (int j = 0; j < maxCol.length; j++) {
switch (j) {
case 0:
taskName[i]=data.substring(0, maxCol[j].length()+1).trim();
data=data.substring(maxCol[j].length()+1);
break;
}
}
}
List<String> taskNameList = Arrays.asList(taskName);
boolean taskFlag = taskNameList.contains("affectivew.exe");
return taskFlag;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}