如何获取Java进程的id
我知道有几种依赖于平台的黑客,但我更喜欢一种更通用的解决方案
不存在能够保证在所有jvm实现中工作的独立于平台的方法。
ManagementFactory.getRuntimeMXBean().getName()看起来是最好(最接近)的解决方案,通常包括PID。它很短,可能适用于广泛使用的每个实现
在linux+windows上,它返回一个类似[email protected](12345为流程id)。尽管如此,还是要小心根据文件,无法保证该值:
返回表示正在运行的Java虚拟机的名称。这个
返回的名称字符串可以是任意字符串和Java虚拟字符串
机器实现可以选择嵌入特定于平台的有用信息
返回的名称字符串中的信息。每个正在运行的虚拟机
可能有不同的名字
在Java 9中新的过程API可用于:
长pid=ProcessHandle.current().pid();