在Windows 7上,Java JVM如何设置“user.home”系统属性?
我正在使用JRE 1.7,我发现user.home
系统属性非常不寻常。 JVM如何设置此值?
这个Java错误解释了如何: http : //bugs.sun.com/view_bug.do?video_id = 4787931
系统属性user.home
设置为:
- 读取密钥的注册表值:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop
- 获取此值的父路径,但不解析环境变量。
示例: %userprofile%\Desktop
=> %userprofile%
(未解析的环境变量)
这个问题应该在Java 8中修复。
相关参考: Java user.home被设置为%userprofile%并且未被解析
在Windows中,它会像接受的答案中所述那样获得它,并且取决于Desktop文件夹位置。
如果要更改默认的桌面文件夹位置,并且仍希望将user.home放在同一文件夹中,则有解决方法:
将此添加到环境变量中:
_JAVA_OPTIONS:-Duser.home =%HOMEDRIVE %% HOMEPATH%
或者在命令行中:
set _JAVA_OPTIONS = -Duser.home =%HOMEDRIVE %% HOMEPATH%
我在本页的评论中看到了解决方案: http : //www.timehat.com/javas-user-home-is-wrong-on-windows/