java获取某进程的进程数

来源:互联网 发布:淘宝网健身护腕 编辑:程序博客网 时间:2024/04/30 11:19
 

最近工作中用到一些线程方面的知识,主要用到一些进程的pid以及进程数量方面的知识一下是一些代码

public static int getCountByPName(String PNAME) {
  String[] ss = null;
  int count = 0;
  // 获取用户的目录
  String path = System.getProperty("user.dir");
  final File createFileName = new File(path + "\\mytempscript.vbe");
  try {
   if (createFileName.exists() ? createFileName.delete()
     : createFileName.createNewFile()) {
   }

   final PrintWriter pw = new PrintWriter(new FileWriter(
     createFileName, true), true);
   pw
     .println("for each ps in getobject(\"winmgmts:\\\\.\\root\\cimv2:win32_process\").instances_");
   pw.println("wscript.echo ps.handle&vbtab&ps.name");
   pw.println("next");
   pw.close();

   final InputStream ii = Runtime.getRuntime().exec(
     "cscript " + path + "\\mytempscript.vbe").getInputStream();

   final InputStreamReader ir = new InputStreamReader(ii);

   final BufferedReader br = new BufferedReader(ir);
   String str = null;
   while ((str = br.readLine()) != null) {
    if (str.indexOf(PNAME) > 0 && str.endsWith(".exe")) {
     ss = str.split("\\s");
     for (int i = 0; i < ss.length; i += 2) {
      System.out.println("****************************");
      System.out.println("进程名:" + ss[i + 1] + "\n进程ID:"
        + ss[i]);
      count++;
     }
    }
   }
   ir.close();
   ii.close();
   br.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return count;
 }

这段代码主要是为了获取某进程的进程个数

原创粉丝点击