2009-07-08 13 views

Odpowiedz

52
String computername=InetAddress.getLocalHost().getHostName(); 
System.out.println(computername); 
+5

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

+1

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

+0

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

1

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.

+0

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

11

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()); 
+0

byłem pod wrażeniem getRunTimeMXBean() nie jest w 100% niezawodny – Hector

+0

"uname -n" wykonuj dokładnie pracę. –

9

W systemie Windows, jeśli ciebie chcesz nazwę stacji roboczej, możesz użyć:

System.getenv("COMPUTERNAME") 
Powiązane problemy