Java aktuelle Computernamen und angemeldete Benutzer?
-
19-08-2019 - |
Frage
Ist es möglich, den Namen des aktuell angemeldeten Benutzers (Windows / Unix) und den Hostnamen der Maschine zu bekommen?
Ich gehe davon aus, es ist nur eine Eigenschaft von einiger statischen Umgebung Klasse.
Ich habe dies für die Benutzername gefunden
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
und dies für den Computernamen:
import java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}
catch(Exception ex) {
...
}
Ist der erste nur für Windows?
Und was wird das zweite tun, wenn Sie nicht über einen Hostnamen gesetzt haben?
Lösung
der aktuell angemeldeten Benutzer erhalten:
System.getProperty("user.name"); //platform independent
und der Host-Name der Maschine:
java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
Andere Tipps
der aktuell angemeldeten Benutzer erhalten:
System.getProperty("user.name");
Um die Hostnamen der Maschine zu erhalten:
InetAddress.getLocalHost().getHostName();
Um den letzten Teil Ihrer Frage zu beantworten, die Java API sagt, dass getHostName () gibt
der Hostname für diese IP-Adresse, oder wenn der Betrieb nicht durch die Sicherheitskontrolle, die textuelle Repräsentation der IP-Adresse erlaubt ist.
user.name
Verwendung nicht sicher ist als Umgebungsvariablen gefälscht werden können. Verfahren Sie wurden unter Verwendung von gut ist, gibt es ähnliche Methoden für Unix-basiertes Betriebssystem als auch
die zur Zeit in Benutzerpfad angemeldet erhalten:
System.getProperty("user.home");