在Windows 7上,Java JVM如何设置“user.home”系统属性?

时间:2013-06-03 04:16:22

标签: java windows-7 jvm

我正在使用JRE 1.7,我发现user.home系统属性非常不寻常。 JVM如何设置此值?

2 个答案:

答案 0 :(得分:21)

此Java错误解释了如何:http://bugs.sun.com/view_bug.do?bug_id=4787931

系统属性user.home由以下设置:

  1. 阅读密钥的注册表值:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop
  2. 获取此值的父路径,但解析环境变量。
  3. 示例:%userprofile%\Desktop => %userprofile%(未解决的环境变量)

    这个问题应该在Java 8中修复。

    相关参考:Java user.home is being set to %userprofile% and not being resolved

答案 1 :(得分:6)

在Windows中,它会像接受的答案中所说的那样得到它,并且取决于Desktop文件夹的位置。

如果您想更改默认的桌面文件夹位置,并且仍希望将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/