¿Cómo puedo obtener el nombre físico de la máquina en la que se ejecuta mi jvm?Buscar el nombre físico de la máquina en Java
(Física = OS, hasta VMware ...)
¿Cómo puedo obtener el nombre físico de la máquina en la que se ejecuta mi jvm?Buscar el nombre físico de la máquina en Java
(Física = OS, hasta VMware ...)
String computername=InetAddress.getLocalHost().getHostName();
System.out.println(computername);
Tenga en cuenta que esto depende de DNS y puede fallar: http://stackoverflow.com/questions/7883542/getting-the-computer-name-in-java – Vadzim
La forma en que se formula la pregunta: "obtener el nombre físico de la máquina", esto es * no * una respuesta correcta. Estrictamente hablando, lo que le darán más arriba es el ** nombre de la red ** del host, generalmente el nombre de la interfaz localhost. Ver http://stackoverflow.com/a/40702767/1504556. Java no tiene forma (estandarizada) de obtener "nombre de la máquina" o "nombre de la computadora" de la máquina local. – peterh
totalmente de acuerdo con @Vadzim. Sin DNS o DNS dinámico asignando la dirección IP asignada por DHCP, el nombre de la computadora devuelto podría ser muy diferente del nombre real de la computadora. – someone
no estoy exactamente seguro de lo que quiere decir con física Nombre de la máquina. Su comentario "(Physical = OS, hasta vmware ...)" necesita explicarme.
Pero puede utilizar System.getProperty (String key) donde la clave es una de las claves que se encuentran aquí: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getProperties()
que usted debe decirle a nombre del sistema operativo. Si necesita el nombre de host, use el consejo de jsight.
Me refiero al nombre de la computadora en la que se está ejecutando JVM. Es muy probable que sea una computadora física, pero si la JVM se ejecuta dentro de otra máquina virtual, ese nombre es bueno. – ripper234
opciones de los pares, ya que no estoy seguro de lo que quiere:
RuntimeMXBean rmx = ManagementFactory.getRunTimeMXBean();
System.out.println(rmx.getName());
O ...
System.out.println(InetAddress.getLocalHost().getHostName());
O en Linux
Runtime r = Runtime.getRuntime();
Process p = r.exec("uname -a");
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream());
System.out.println(r.readLine());
estaba bajo la impresión de que getRunTimeMXBean() no es 100% confiable – Hector
"uname -n" hace el trabajo exacto. –
En Windows, si quiere el nombre de la estación de trabajo, puede usar:
System.getenv("COMPUTERNAME")
¿Qué plataforma? ¿Importa si es específico del sistema operativo? – Gandalf
¿Quiere decir FQDN? – kmarsh
Lo mejor es independiente de la plataforma, por supuesto. – ripper234