W jaki sposób program w Javie może uzyskać własny identyfikator procesu?

Jak uzyskać identyfikator mojego procesu Java?

Wiem, że istnieje kilka hacków zależnych od platformy, ale wolałbym bardziej ogólne rozwiązanie

1 odpowiedź

Nie ma niezależnego od platformy sposobu, który gwarantowałby działanie we wszystkich implementacjach Jvm. ManagementFactory.getRuntimeMXBean (). GetName () wygląda na najlepsze (najbliższe) rozwiązanie. Jest krótkie i prawdopodobnie działa w każdej implementacji w szerokim użyciu.

W systemie Linux + Windows zwraca wartość taką jak 12345 @ nazwa hosta (12345 jest identyfikatorem procesu). Miej na uwadze, że zgodnie z:

https://docs.oracle.com/javase/6/docs/api/java/lang/management/RuntimeMXBean.html#getName%28%29

nie ma żadnych gwarancji dotyczących tej wartości.

W Javie 9 można użyć nowego interfejsu API: long pid = ProcessHandle.current().pid();

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.