如何获取当前JAVA进程的PID

一.需求

如何在JAVA代码中获取当前运行JAVA进程的进程ID,通常我们可以在JVM外部执行jps命令看到某一JAVA进程的PID,但是如何在JVM内部获取这个PID呢?

二.实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * 获取java进程PID
 * 
 * @return
 */
public static int getPID() {
    String rtName = ManagementFactory.getRuntimeMXBean().getName();
    int index = rtName.indexOf("@");
    if (index != -1) {
        return Integer.parseInt(rtName.substring(0, index));
    }

    return -99;
}