Java プロセスの ID を取得するにはどうすればよいですか?
プラットフォームに依存するハックがいくつかあることは知っていますが、より一般的なソリューションを希望します。
ベストアンサー1
すべての JVM 実装で動作することが保証される、プラットフォームに依存しない方法は存在しません。 はManagementFactory.getRuntimeMXBean().getName()
最善 (最も近い) のソリューションのように見え、通常は PID が含まれます。 これは短く、広く使用されているすべての実装で動作すると考えられます。
"12345@hostname"
Linux+Windowsでは、 (プロセスID)のような値を返します12345
。ただし、ドキュメントによるとこの値については保証はありません。
実行中の Java 仮想マシンを表す名前を返します。返される名前文字列は任意の文字列にすることができ、Java 仮想マシンの実装では、返される名前文字列にプラットフォーム固有の有用な情報を埋め込むことができます。実行中の各仮想マシンには、異なる名前が付けられる場合があります。
Java 9では新しいプロセスAPIに使える:
long pid = ProcessHandle.current().pid();