Est-il possible d'obtenir le nom de l'utilisateur actuellement connecté (Windows/Unix) et le nom d'hôte de la machine?
Je suppose que c'est juste une propriété d'une classe d'environnement statique.
J'ai trouvé ceci pour le nom d'utilisateur
com.Sun.security.auth.module.NTSystem NTSystem = new
com.Sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
et ceci pour le nom de la machine:
import Java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}
catch(Exception ex) {
...
}
Le premier est-il juste pour Windows?
Et que fera le second, si vous n'avez pas défini de nom d'hôte?
Pour obtenir l'utilisateur actuellement connecté:
System.getProperty("user.name"); //platform independent
et le nom d'hôte de la machine:
Java.net.InetAddress localMachine = Java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());
Pour obtenir l'utilisateur actuellement connecté:
System.getProperty("user.name");
Pour obtenir le nom d'hôte de la machine:
InetAddress.getLocalHost().getHostName();
Pour répondre à la dernière partie de votre question, la API Java indique que getHostName () renverra
nom d'hôte pour cette adresse IP ou, si l'opération n'est pas autorisée par le contrôle de sécurité, la représentation textuelle de l'adresse IP.
L'utilisation de user.name
n'est pas sécurisée, car les variables d'environnement peuvent être falsifiées. La méthode que vous utilisiez est bonne, il existe des méthodes similaires pour les systèmes d'exploitation Unix
Pour obtenir le chemin d'utilisateur actuellement connecté:
System.getProperty("user.home");