Używam JRE 1.7 i odkryłem, że właściwość systemu jest bardzo nietypowa. W jaki sposób JVM ustawia tę wartość?W systemie Windows 7 w jaki sposób Java JVM ustawiła właściwość systemową "user.home"?
Odpowiedz
Ten błąd Java wyjaśnia, jak: http://bugs.sun.com/view_bug.do?bug_id=4787931
właściwość systemu user.home
jest ustalany przez:
- Odczytać wartość rejestru dla klucza:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop
- na drogę macierzystą tej wartości, ale zrobić nie rozwiązywać zmiennych środowiskowych.
Przykład: %userprofile%\Desktop
=>%userprofile%
(nierozwiązany zmienna)
Kwestia ta powinna być ustalona w Javie 8.
Powiązane Ref: Java user.home is being set to %userprofile% and not being resolved
W oknach robi się je jak podano w zaakceptowana odpowiedź i zależy od lokalizacji folderu Pulpit.
Istnieje obejście, jeśli chcesz zmienić domyślną lokalizację folderu pulpitu, a nadal chcą mieć user.home w tym samym folderze:
dodać to do zmiennych środowiskowych:
_JAVA_OPTIONS: -Duser.home =% HOMEDRIVE %% HOMEPATH%
lub w wierszu poleceń:
zestaw _JAVA_OPTIONS = -Duser.home =% HOMEDRIVE %% HOMEPATH%
widziałem rozwiązanie w komentarzach tej strony: http://www.timehat.com/javas-user-home-is-wrong-on-windows/