Java如何获取Java应用程序的进程ID?

下面的代码向您展示如何获取Java应用程序的进程ID。我们可以使用ManagementFactory.getRuntimeMXBean().getName()获取进程ID。在Windows中,该方法以形式返回字符串[PID]@[MACHINE_NAME]。

package org.nhooo.example.management;

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

public class GetProcessID {
    public static void main(String[] args) {
        RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();

        // 获取代表正在运行的Java虚拟机的名称。
        //它返回类似于6460 @ AURORA的信息。凡价值
        // @符号之前是PID。
        String jvmName = bean.getName();
        System.out.println("Name = " + jvmName);

        // 通过拆分由返回的字符串来提取PID
        // bean.getName()方法。
        long pid = Long.valueOf(jvmName.split("@")[0]);
        System.out.println("PID  = " + pid);
    }
}

这是上面代码的结果:

Name = 8564@AURORA
PID  = 8564