如何获取我的 Java 进程的 ID?
我知道有几种依赖于平台的技巧,但我更喜欢更通用的解决方案。
不存在可以保证在所有 jvm 实现中工作的独立于平台的方法。ManagementFactory.getRuntimeMXBean().getName()
看起来是最好(最接近)的解决方案,通常包括 PID。它很短,而且probably适用于广泛使用的每个实现。
在 linux+windows 上它返回一个类似的值"12345@hostname"
(12345
是进程 ID)。但要小心根据文档,对此值没有任何保证:
返回代表正在运行的 Java 虚拟机的名称。这
返回的名称字符串可以是任意字符串和 Java 虚拟
机器实现可以选择嵌入特定于平台的有用的
返回的名称字符串中的信息。每个正在运行的虚拟机
可以有不同的名称。
在Java 9中新的流程API可以使用:
long pid = ProcessHandle.current().pid();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)