Я использую JRE 1.7, и я обнаружил, что свойство user.home
System очень необычно. Как JVM устанавливает это значение?
В Windows 7 как Java JVM устанавливает свойство "user.home" System?
Ответ 1
Эта ошибка Java объясняет, как: http://bugs.sun.com/view_bug.do?bug_id=4787931
Системное свойство user.home
устанавливается следующим образом:
- Прочитайте значение реестра для ключа:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop
- Возьмите родительский путь этого значения, но не разрешайте переменные среды.
Пример: %userprofile%\Desktop
= > %userprofile%
(нерешенная переменная среды)
Эта проблема должна быть исправлена в Java 8.
Связанная ссылка: Java user.home устанавливается на% userprofile% и не разрешается
Ответ 2
В окнах он получает значение, как указано в принятом ответе, и зависит от местоположения папки "Рабочий стол".
Существует обходное решение, если вы хотите изменить местоположение папки "Рабочий стол по умолчанию" и по-прежнему хотите иметь user.home в той же папке:
добавить это в переменные окружения:
_JAVA_OPTIONS: -Duser.home =% HOMEDRIVE %% HOMEPATH%
или в командной строке: набор _JAVA_OPTIONS = -Duser.home =% HOMEDRIVE %% HOMEPATH%
Я видел решение в комментариях к этой странице: http://www.timehat.com/javas-user-home-is-wrong-on-windows/