2013-08-21 5 views
0

ЗдесьSystem.getProperty («user.name») возвращает HOSTNAME вместо вошедшего пользователя

System.getProperty("user.name"); 

возвращает хост-имя в Windows Server 2008 машины вместо того, чтобы в настоящее время вошли в систему с именем пользователя.

Ниже мой код

final String user = System.getProperty("user.name"); 
logger.info("User Name : " + user); 

Я хочу знать, как System.getProperty работает в Java и Windows Server 2008? и Почему он возвращает неправильное значение в этом случае?

+1

Вы имеете в виду пользователя, вошедшего в Windows? Или пользователь вошел в ваше веб-приложение (из браузера где-то в мире)? – Thilo

+1

@ Duncan Нетет только автономный application.no сервер – Rohan

+1

Я получаю свое имя пользователя, когда я запускаю его как часть автономной java-программы –

ответ

2

Только что проверил это: System.getProperty("user.name"); возвращает значение из переменных окружения USERNAME, поэтому проверьте, что set USERNAME говорит в окне CMD

+0

Он говорит USERNAME = admin – Rohan

+0

Strange ... что-нибудь особенное, как ваше приложение запускается? Возможно, попробуйте Process Explorer с сайта www.systernals.com, чтобы узнать, что такое реальная среда вашего рабочего процесса. –

+0

Хмм, что вы имеете в виду: «Я передаю команду этой банке с моей локальной машины»? С какой именно командой вы его вызываете? –

0

, чтобы отобразить список всех свойств, которые установлены в Java, попробуйте следующий код

public static void main(String[] args) 
    { 
     Properties prop = System.getProperties(); 
     Set<String> a = prop.stringPropertyNames(); 
     Iterator<String> keys = a.iterator(); 
     while (keys.hasNext()) 
     { 
      String key = keys.next(); 
      String value = System.getProperty(key); 
      System.out.println(key + "=" + value); 
     } 
    } 
+0

Когда я попробовал это, я получаю strage output.as user.name = >>>> Scripts.jar и java.class.path = >>>> INPUSCPC08216 $ здесь Script.jar - это имя файла jar на окнах сервер, который я пытаюсь запустить с моей локальной машины, и когда я использую user.name, он дает мне вывод как INPUSCPC08216 $ – Rohan

+0

Можете ли вы дать больше объяснений тому, что вы пытаетесь получить из имени свойства 'user.name' или 'java.class.path' – Sarath

+0

Я пытаюсь user.name, и я получаю INPUSCPC08216 $, который является ничем иным, как значениями java.class.path, как указано выше. – Rohan

Смежные вопросы