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?

War es hilfreich?

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");
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top