JAVA獲取進程PID

用C語言編程時,能夠用getpid()函數獲取進程的PID,但在JAVA中,竟然沒有提供能夠直接獲取進程PID的方法,不知SUN公司是怎麼想的。雖然在JAVA編程時不多用到PID,但有時爲了可以在Linux下把一個在後臺運行的JAVA應用程序終止,可能須要用到PID,固然,終止後臺運行的JAVA應用程序的方法不少,找到它的PID,經過kill -9 pid命令去殺死它是其中一種方法。下面提供一種在JAVA程序中獲取當前程序PID的方法。java

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

public class JavaPID {
    public static void main(String[] args) {
        RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
        String name = runtime.getName();
        System.out.println("當前進程的標識爲:"+name);
        int index = name.indexOf("@");
        if (index != -1) {
            int pid = Integer.parseInt(name.substring(0, index));
            System.out.println("當前進程的PID爲:"+pid);
        }
        try {
            //這裏休息60秒,是爲了在windows管理器查看該應用程序的進程PID
            Thread.sleep(60*1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

控制檯輸出以下:
當前進程的標識爲:6916@lidonghao-PC
當前進程的PID爲:6916shell

打開Windows的資源管理器,能夠看到當前運行的JAVA應用程序的PID,以下:編程

資源管理器截圖

這樣,獲取到當前JAVA應用程序的PID後,就能夠直接把PID寫到一個臨時文件中,須要關閉該應用程序時,直接手動執行kill -9 pid命令,或者寫一個shell腳本,在腳本中執行kill命令。segmentfault

相關文章
相關標籤/搜索