出于某种原因,我肯定更改了一些配置或其他东西,因为在一个全新的项目中,我输入了以下内容:
System.out.println(System.getProperty("user.home"));
并获得以下输出:
C:\
而在以前,它通常会返回类似于C:\Users\...的内容
是否有需要清除的配置文件?
发布于 2012-10-03 00:57:02
当您在代码中调用“System.getProperty("user.home");”时,JVM不会使用Windows环境变量来确定用户配置文件的位置,而是访问引用用户桌面目录的注册表项。然后,它获取桌面的父目录,并假定该目录是用户的配置文件目录。因此,请在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\中检查桌面目录的注册表项,并相应地更新它。如果桌面目录的注册表键的值为“C:\\”,则当您在代码中调用“System.getProperty("user.home");”时,JVM将返回值“C:\”。例如,如果您可以将注册表中的Desktop键entery修改为“C:\Users\YourName\Desktop”,则在代码中调用“System.getProperty("user.home");”时将获得“C:\Users\YourName”。
谢谢!
https://stackoverflow.com/questions/12693201
复制相似问题