Jak mogę uzyskać nazwę fizycznego komputera, na którym działa mój jvm?Znajdź fizyczną nazwę komputera w Javie
(Physical = OS, aż do VMware ...)
Jak mogę uzyskać nazwę fizycznego komputera, na którym działa mój jvm?Znajdź fizyczną nazwę komputera w Javie
(Physical = OS, aż do VMware ...)
String computername=InetAddress.getLocalHost().getHostName();
System.out.println(computername);
Należy pamiętać, że jest to zależne od DNS i może się nie udać: http://stackoverflow.com/questions/7883542/getting-tech-computer-name-in-java – Vadzim
Sposób sformułowania pytania: "pobierz nazwę fizycznego komputera", to to * nie * poprawna odpowiedź. Ściśle mówiąc, powyższe informacje będą zawierały ** nazwę sieci ** hosta, zazwyczaj nazwę interfejsu lokalnego. Zobacz http://stackoverflow.com/a/40702767/1504556. Java nie ma (znormalizowanego) sposobu uzyskania "nazwy komputera" lub "nazwy komputera" lokalnego komputera. – peterh
całkowicie zgodził się z @ Vadzim. Bez DNS lub dynamicznego DNS mapowania przypisanego adresu IP przez DHCP, zwrócona nazwa komputera może się bardzo różnić od rzeczywistej nazwy komputera. – someone
Nie jestem do końca pewien, co masz na myśli przez maszynie fizycznej Name. Twój komentarz "(Physical = OS, do vmware ...)" wymaga wyjaśnienia mi.
Ale można użyć System.getProperty (klawisz String), gdzie klucz jest jednym z występujących tu klawiszy: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html#getProperties()
To powinno wam nazwa OS. Jeśli potrzebujesz nazwy hosta, skorzystaj z porady jsight.
Mam na myśli nazwę komputera, na którym działa JVM. Najprawdopodobniej fizyczny komputer, ale jeśli JVM działa w innej maszynie wirtualnej, to ta nazwa jest dobra. – ripper234
opcje para, ponieważ nie jestem pewien, co chcesz:
RuntimeMXBean rmx = ManagementFactory.getRunTimeMXBean();
System.out.println(rmx.getName());
albo ...
System.out.println(InetAddress.getLocalHost().getHostName());
Albo na Linuksie
Runtime r = Runtime.getRuntime();
Process p = r.exec("uname -a");
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream());
System.out.println(r.readLine());
byłem pod wrażeniem getRunTimeMXBean() nie jest w 100% niezawodny – Hector
"uname -n" wykonuj dokładnie pracę. –
W systemie Windows, jeśli ciebie chcesz nazwę stacji roboczej, możesz użyć:
System.getenv("COMPUTERNAME")
Jaka platforma? Czy ma to jakieś znaczenie, jeśli chodzi o system operacyjny? – Gandalf
Masz na myśli FQDN? – kmarsh
Best jest oczywiście niezależny od platformy. – ripper234