Ява текущее имя компьютера и пользователя, вошедшего в систему?



можно ли получить имя текущего зарегистрированного пользователя (Windows / Unix) и имя хоста машины?



Я предполагаю, что это просто свойство некоторых статического класса.



Я нашел это для имени пользователя



com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());


и это для машины имя:



import java.net.InetAddress;
...
String computerName;
...
try {
computerName = InetAddress.getLocalHost().getHostName();
}

catch(Exception ex) {
...
}


первый только для Windows?



и что будет делать второй, если у вас нет набора имени хоста?

563   4  

4 ответов:

чтобы получить текущего зарегистрированного пользователя:

System.getProperty("user.name"); //platform independent 

и имя машины:

java.net.InetAddress localMachine = java.net.InetAddress.getLocalHost();
System.out.println("Hostname of local machine: " + localMachine.getHostName());

чтобы получить текущего зарегистрированного пользователя:

System.getProperty("user.name");

чтобы получить имя хоста машины:

InetAddress.getLocalHost().getHostName();

чтобы ответить на последнюю часть вашего вопроса, Java API говорит, что getHostName () вернет

имя хоста для этого IP-адреса, или если операция не разрешена проверкой безопасности, текстовое представление IP-адреса.

С помощью user.name не является безопасным, поскольку переменные среды могут быть подделаны. Метод, который вы использовали, хорош, есть аналогичные методы и для ОС на базе unix

чтобы получить текущий путь пользователя:

System.getProperty("user.home");

Comments

    Ничего не найдено.