14 Stimmen

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

Ich brauche eine Möglichkeit, eine Instanz der JVM aus dem Java-Code heraus, der in dieser JVM läuft, eindeutig und dauerhaft zu identifizieren.

Das heißt, wenn ich zwei JVMs zur gleichen Zeit auf dem gleichen Rechner laufen lasse, sind beide unterscheidbar. Sie ist auch von laufenden JVMs auf anderen Rechnern und von zukünftigen Ausführungen auf demselben Rechner unterscheidbar, selbst wenn die Prozess-ID wiederverwendet wird.

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

Update : Ich sehe, dass jeder eine UUID für die gesamte Sitzung empfohlen hat. Das scheint eine gute Idee zu sein, wenn auch vielleicht ein wenig zu schwerfällig. Hier ist mein Problem aber: Ich möchte die JVM-ID verwenden, um mehrere eindeutige Bezeichner in jeder JVM-Ausführung zu erstellen, die irgendwie die JVM-Instanz einbeziehen.

Meines Erachtens sollte man nicht wirklich andere Zahlen in eine UUID mischen, da die Eindeutigkeit nicht mehr gewährleistet ist. Eine Alternative ist, die UUID in eine Zeichenkette zu verwandeln und diese zu verketten, aber dann wird sie zu lang. Haben Sie eine Idee, wie man dieses Problem lösen kann?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X