在 Java 中查找用户主目录的最佳方法是什么?
难点在于解决方案应该是跨平台的;它应该适用于 Windows 2000、XP、Vista、OS X、Linux 和其他 Unix 变体。我正在寻找可以在所有平台上完成此操作的代码片段,以及一种检测平台的方法。
根据 Java 错误4787931,系统属性user.home在 Windows XP 上无法正常工作,因此使用此系统属性不是可接受的解决方案,因为它不是跨平台的。
user.home
您引用的错误(错误 4787391)已在 Java 8 中修复。即使您使用的是较旧版本的 Java,该System.getProperty("user.home")方法可能仍然是最好的。这种user.home方法似乎在很多情况下都有效。Windows 上的 100% 防弹解决方案很难,因为 Windows 对主目录的含义有一个不断变化的概念。
System.getProperty("user.home")
如果user.home对你来说还不够好,我建议选择home directoryfor windows 的定义并使用它,使用System.getenv(String).
home directory
System.getenv(String)