汎用 Java プログラムのプロセス ID の取得
実行中の Java プログラムに関連付けられたプロセス ID (PID) の取得は、永続的な課題でしたプラットフォームに依存しないソリューションを求める開発者向け。プラットフォーム固有の回避策は存在しますが、必要な汎用性が欠けています。
RuntimeMXBean アプローチ
最も広く採用されているソリューションには、ManagementFactory クラスとその getRuntimeMXBean() メソッドが導入されています。通常、この行は「12345@hostname」のような名前を生成します。12345 は PID を表します。
ただし、このアプローチは文書化されていない微妙な点に依存しており、すべての JVM 実装で一貫した結果が得られるとは保証されていないことに注意することが重要です。 。実際、Java ドキュメント自体は、プラットフォーム固有の規則に従い、返される名前は任意である可能性があることを明示的に警告しています。
実行中の Java 仮想マシンを表す名前を返します。返される名前文字列は任意の文字列にすることができ、Java 仮想マシンの実装では、返される名前文字列にプラットフォーム固有の有用な情報を埋め込むことを選択できます。実行中の各仮想マシンには異なる名前を付けることができます。
Java 9 Process API
Java 9 で導入された ProcessHandle API は、仮想マシンを取得するためのより直接的で標準化された代替手段を提供します。 PID:
long pid = ProcessHandle.current().pid();
このアプローチは、最新のプロセス ID にアクセスするための信頼性が高く、プラットフォームに依存しない方法を提供します。 Java バージョンでは、RuntimeMXBean アプローチに関連する複雑さを排除します。
以上がJava プログラムのプロセス ID を確実に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。