¿Cómo puede el código Java obtener un identificador único para la JVM en la que se está ejecutando? En un sistema Unix, un ejemplo de lo que estoy buscando sería el PID del proceso en el que se está ejecutando la JVM (suponiendo una asignación de uno a uno entre las JVM y los procesos).¿Cómo obtener un identificador de JVM único?
Respuesta
Un método simple de crear una ID única para cada JVM es iniciar un ServerSocket estático, configurado para usar el puerto 0 sobre el cual tomará cualquier puerto libre. Como no pueden existir dos ServerSockets (JVM u otros) en el mismo puerto, todos serán únicos y podrá consultar el número de puerto. Como es estático, solo habrá uno por JVM.
Esto depende de los permisos que tenga, pero en la mayoría de los casos funciona bien y siempre se puede vincular a "127.0.0.1" para que sea menos probable que surja una restricción.
static ServerSocket myssock;
static int myid;
static {
myssock = new ServerSocket(0);
myid = myssock.getLocalPort();
}
Si tiene varias JVM a través de múltiples máquinas host a continuación, usted puede combinar lo anterior con LAN IP de la máquina para crear una identificación única JVM a través de una red.
Hemos estado utilizando:
import java.lang.management.ManagementFactory;
String jvmName = ManagementFactory.getRuntimeMXBean().getName();
cual da algo así como <pid>@<hostname>
, al menos en Sun/Oracle JVM.
- 1. ¿Cómo obtener un identificador único de OpenID/Google?
- 2. Generando un identificador global único en Java
- 3. Identificador único para NSManagedObject
- 4. Identificador único de una Mac?
- 5. localmente único identificador
- 6. ¿Crees un identificador único para dispositivos iOS?
- 7. Identificador único para teléfono Android
- 8. Identificador único para elementos HTML
- 9. Obtenga el identificador único de un subproceso en Java 1.4
- 10. IOS Identificador de usuario único en dispositivos
- 11. identificador único de php para clientes
- 12. EKEventstore e identificador de calendario único
- 13. Identificador único para una aplicación de iPhone
- 14. Identificador de archivo único en Windows
- 15. ¿Hay un identificador único de objeto en Python?
- 16. ¿La manera correcta de tener un identificador único en Python?
- 17. ¿Qué es un buen identificador de PC único?
- 18. Cuál es el identificador único para un elemento DOM/nodo
- 19. Obtener un identificador único para el trabajador en la piscina de multiprocesamiento pitón
- 20. ¿Hay algún identificador único para wpf UIElement?
- 21. SQL Server identificador único equivalente en C#
- 22. Identificador único numérico de una clase a través de typeid
- 23. Identificador único de iPhone/iPad ADEMÁS DE UUID/UDID?
- 24. Cómo obtener un identificador único de computadora en Java (como ID de disco o ID de placa base)
- 25. Obtener identificador de paquete programáticamente
- 26. ¿Puedo obtener un identificador para - fuente?
- 27. Vista de búsqueda fluida NHibernate sin identificador único
- 28. MySQL identificador único o valor de id combinado
- 29. cómo asignar un identificador único a múltiples entradas de marcos de datos
- 30. ¿Cómo generar un identificador único de una longitud fija en Java?
Consulte http://stackoverflow.com/questions/35842/process-id-in-java para obtener más información sobre cómo obtener la ID del proceso Java actual. [Esta entrada del blog] (http://blog.igorminar.com/2007/03/how-java-application-can-discover-its.html) también tiene buena información. – prunge