如何获取java的PID。用JAVA实现linux下的lang.Process
我想出了两种方法来解决这个问题,但都没有达到预期的效果
我使用“流程”执行“ps-ef”
我可以通过这个方法得到所有的行,我可以通过我的运行来过滤它们 命令但如果我有很多相同的命令过程。这不是工作
我使用JNA获取PID
Field field = null;
Integer pid = -1;
try {
Class clazz = Class.forName("java.lang.UNIXProcess");
field = clazz.getDeclaredField("pid");
field.setAccessible(true);
pid = (Integer) field.get(process);
} catch (Throwable e) {
e.printStackTrace();
}
这种方法只能得到运行窗口的PID。这不是过程的真实PID
我该怎么办
谢谢
# 1 楼答案
爪哇9
Java9引入了一些“不错”的更改,其中一个是包含了}
Process
的本机PID—有关更多详细信息,请参见^{您还可以通过^{} 方法获得^{} 对
Process
的引用,这有点不错