Java プロセス ID の取得: プラットフォームの依存関係のナビゲート
Java プログラムのプロセス ID (PID) を決定することは、次の理由により困難なタスクとなる場合があります。プラットフォームの依存関係。各プラットフォームに固有のハッキングが存在する可能性がありますが、より汎用性の高いソリューションを求めることが多くの場合好まれます。
プラットフォーム依存のハック
プラットフォームに依存するさまざまなアプローチが PID の取得を試みます。 。 Windows の場合、Windows Management Instrumentation (WMI) を利用してプロセス ID を取得できます。 Linux ユーザーは、「/proc」ファイルシステムを利用してプロセスを識別できます。ただし、このようなハッキングは本質的に特定のプラットフォームに限定されています。
最も近いプラットフォームに依存しないソリューション
ManagementFactory.getRuntimeMXBean().getName() は、比較的一貫した近似を提供します。さまざまな JVM 実装における PID。通常、「12345@hostname」のような文字列が返されます。「12345」はプロセス ID を表します。ただし、ドキュメントでは、この値は保証されていないことが強調されています。
Java 9 の機能強化
Java 9 では、より信頼性の高い方法を提供する新しいプロセス API が登場します。 PIDを取得します。 ProcessHandle.current().pid() を使用すると、プロセス ID が長整数として得られます。この方法はすべてのプラットフォームに適用でき、プラットフォーム固有の実装への依存を回避します。
結論
プロセス ID を取得するための普遍的に適用可能なプラットフォームに依存しないソリューションですが、 Java プログラムの内容は依然として不明ですが、ManagementFactory.getRuntimeMXBean().getName() および (Java 9 以降の場合) ProcessHandle.current().pid() は、最も一般的なシナリオに対応する信頼できるオプションとして登場します。
以上が異なるプラットフォーム間で Java プロセスの ID を確実に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。