現在のJavaプロセスのプロセスIDをプログラミングで取得する

1050 ワード

Linuxのプログラミング経験のある友人は、現在のプロセスのプロセスIDを取得する方法に詳しいに違いありません.LinuxのCライブラリには、現在のプロセスのプロセスIDを簡単に取得できる関数getpidが提供されています.しかし、Java言語を仕事言語として使用している友人にとっては、現在のプロセスIDをどのように取得するかは難しいかもしれません.公式規格JDKドキュメントからはgetpidのような方法が見つからないようで、市販の教材でもプロセスIDの取得のようなプラットフォームに関連する関数の方法はあまり言及されていません.
最近、会社でツールのコードを読んでいると、偶然次のようなコードが見つかりました.JMXの特性を利用して、現在のJavaプロセスのプロセスIDを取得しました.コードのサンプルは以下の通りです.
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

public class GetPid {

    /**
     * @param args
     */
    public static void main(final String[] args) {
        final RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
        final String info = runtime.getName();
        final int index = info.indexOf("@");
        if (index != -1) {
            final int pid = Integer.parseInt(info.substring(0, index));
            System.out.println(info);
            System.out.println(pid);
        }
    }

}

サンプルコードのいくつかのメソッド呼び出しにより、現在のプロセスのプロセスを抽出できます.
ID
ああ、簡単じゃないですか.