最近工作中用到一些线程方面的知识,主要用到一些进程的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 + "();
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("
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;
}
这段代码主要是为了获取某进程的进程个数