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

Red*_*ite 1 java windows

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

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

并获得以下输出:

C:\

以前,它过去常常返回类似的东西 C:\Users\...

是否需要清除配置文件?

Sar*_*van 6

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

谢谢!

  • 还应该注意这个逻辑是错误的 - 不能保证桌面文件夹的父级是一个明智的地方.它甚至可能不属于用户,例如,如果桌面文件夹类似于`\\ fileserver\desktops\alice`.因此最好避免完全使用`user.home`属性. (2认同)