2

出于某种原因,我一定更改了一些配置或其他东西,因为在一个全新的项目中,我输入了这个:

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

并获得以下输出:

C:\

而以前,它曾经返回类似的东西C:\Users\...

是否有我需要清除的配置文件?

4

1 回答 1

7

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

谢谢!

于 2012-10-02T16:57:02.217 回答