Java认为我的主文件夹是C盘?

时间:2012-10-02 15:16:39

标签: java windows

出于某种原因,我必须更改一些配置或其他内容,因为在一个全新的项目中,我正在进入:

System.out.println(System.getProperty("user.home"));

并获得以下输出:

C:\

之前,它曾用于返回类似C:\Users\...

的内容

我需要清除配置文件吗?

1 个答案:

答案 0 :(得分:5)

当您在代码中调用“System.getProperty("user.home");”时,JVM不会使用Windows环境变量来确定用户配置文件的位置,而是访问引用用户桌面目录的注册表项。然后它获取桌面的父目录并假定它是用户的配置文件目录。因此,请在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\&中检查您的桌面目录的注册表项。相应地更新它。如果Desktop目录的registery密钥值为“C:\\”,则当您在代码中调用“C:\”时,JVM将返回值“System.getProperty("user.home");”。例如,如果您可以将注册表中的桌面密钥输入修改为“C:\Users\YourName\Desktop”,则会在代码中调用“C:\Users\YourName”时获得“System.getProperty("user.home");”。

谢谢!