У нас есть клиент, который запускает установки Windows 7 с профилями пользователей, хранящимися на Windows Server в интрасети (он называется "сервер терминального сервера" или что-то вроде этого, я думаю...).
Теперь у меня есть некоторые проблемы в Java относительно этих "внешних" профилей пользователей.
Я сохраняю некоторые настройки в папке в домашней папке пользователей (Windows: C:\Users\username\
, Mac: /Users/username/
). Поскольку приложение является кросс-платформенным, я не использую переменную среды Windows %USERPROFILE%
в Jave, а свойство собственной собственности Java user.home
.
Тем не менее, это то, что говорит CMD для переменной %USERPROFILE%
:
>echo %USERPROFILE%
C:\Users\vvw\
И это то, что я получаю на Java:
>System.getProperty("user.home")
C:\windows\system32\config\systemprofile\
Почему свойство Java user.home
умолчанию относится к этой странной директории?
И что было бы лучшим способом исправить пользовательский домашний каталог в Java для Mac и Windows?
Обновление. Помогла перезагрузка java и перезагрузка. Тем не менее, хорошо знать, что это также отслеживается как ошибка в базе данных ошибок Java, и это будет исправлено в Java 8.
Прочитайте эту статью, у кого-то есть такая же проблема.
Поскольку вы не сказали, что на Mac нет проблем, выполните свой код на других машинах Windows. Возможно, что-то не так с вашей машиной разработчика.
Каталог C:\windows\system32\config\systemprofile\
выглядит как пользовательский каталог пользователя SYSTEM, но я не уверен. Это может означать, что java работает под пользовательской системой.