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

标签 java windows

出于某种原因,我一定是更改了一些配置什么的,因为在一个全新的项目中,我输入了这个:

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

并获得以下输出:

C:\

而以前,它通常返回类似 C:\Users\...

的内容

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

最佳答案

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

谢谢!

关于Java 认为我的主文件夹是 C 盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12693201/

相关文章:

java - libgdx 中的多线程和加载 Assets

c - 如何从 Windows 线程函数返回 char *

c++ - Windows C++ 如何调用从一个线程到另一个线程的阻塞读取?

c++ - 我如何在源代码中找到一个仍在等待的被破坏的线程?

java - 使用命令行在Windows中压缩文件夹

c# - 确定 Windows 10 触摸键盘是可见还是隐藏

java - 为什么我的代码中的标志 'i' 没有增加

java - 需要在JPanel(Java Swing)中使用多个组合框

java - 以 guice 方式为 Provider 赋予值(value)

java - OpenNni:颜色坐标到深度坐标