Java プログラムはどのようにして独自のプロセス ID を取得できますか? 質問する

Java プログラムはどのようにして独自のプロセス ID を取得できますか? 質問する

Java プロセスの ID を取得するにはどうすればよいですか?

プラットフォームに依存するハックがいくつかあることは知っていますが、より一般的なソリューションを希望します。

ベストアンサー1

すべての JVM 実装で動作することが保証される、プラットフォームに依存しない方法は存在しません。 はManagementFactory.getRuntimeMXBean().getName()最善 (最も近い) のソリューションのように見え、通常は PID が含まれます。 これは短く、広く使用されているすべての実装で動作すると考えられます。

"12345@hostname"Linux+Windowsでは、 (プロセスID)のような値を返します12345。ただし、ドキュメントによるとこの値については保証はありません。

実行中の Java 仮想マシンを表す名前を返します。返される名前文字列は任意の文字列にすることができ、Java 仮想マシンの実装では、返される名前文字列にプラットフォーム固有の有用な情報を埋め込むことができます。実行中の各仮想マシンには、異なる名前が付けられる場合があります。

Java 9では新しいプロセスAPIに使える:

long pid = ProcessHandle.current().pid();

おすすめ記事