Ist es möglich, eine wirklich eindeutige ID für eine bestimmte JVM-Instanz abzurufen?

Ich benötige eine Möglichkeit, eine Instanz der JVM innerhalb des Java-Codes, der in dieser JVM ausgeführt wird, eindeutig und dauerhaft zu identifizieren.

Das heißt, wenn zwei JVMs gleichzeitig auf demselben Computer ausgeführt werden, ist jede unterscheidbar. Es unterscheidet sich auch von der Ausführung von JVMs auf anderen Computern und von zukünftigen Ausführungen auf demselben Computer, selbst wenn die Prozess-ID erneut verwendet wird.

Ich glaube, ich könnte so etwas implementieren, indem ich die Startzeit, den Maschinen-MAC und die Prozess-ID identifiziere und sie auf irgendeine Weise kombiniere. Ich frage mich, ob es einen Standardweg gibt, um dies zu erreichen.

Aktualisiere: Ich sehe, dass jeder eine UUID für die gesamte Sitzung empfohlen hat. Das scheint eine gute Idee zu sein, wenn auch möglicherweise etwas zu schwer. Hier ist jedoch mein Problem: Ich möchte die JVM-ID verwenden, um in jeder JVM-Ausführung mehrere eindeutige Bezeichner zu erstellen, in die die JVM-Instanz irgendwie integriert ist.

Mein Verständnis ist, dass Sie andere Zahlen nicht wirklich in eine UUID mischen sollten, da die Eindeutigkeit nicht mehr garantiert ist. Eine Alternative besteht darin, die UUID in einen String zu verwandeln und zu verketten, aber dann wird sie zu lang. Irgendwelche Ideen zur Überwindung dieses Problems?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage