我正在编写几个 java 程序,在完成我想做的任何事情后,需要在单独的 JVM 中杀死/清理。为此,我需要获取我正在创建的 java 进程的 PID。
jps -l
可在 Windows 和 Unix 上运行。您可以使用 java 程序调用此命令Runtime.getRuntime().exec
。样本输出jps -l
如下
9412 foo.bar.ClassName
9300 sun.tools.jps.Jps
您可能需要解析它,然后检查完全限定名称,然后从相应的行获取 pid。
private static void executeJps() throws IOException {
Process p = Runtime.getRuntime().exec("jps -l");
String line = null;
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream(), "UTF-8"));
while ((line = in.readLine()) != null) {
String [] javaProcess = line.split(" ");
if (javaProcess.length > 1 && javaProcess[1].endsWith("ClassName")) {
System.out.println("pid => " + javaProcess[0]);
System.out.println("Fully Qualified Class Name => " +
javaProcess[1]);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)