在 Java 中查找用户主目录的最佳方法是什么?
困难在于解决方案应该是跨平台的;它应该适用于 Windows 2000、XP、Vista、OS X、Linux 和其他 Unix 变体。我正在寻找可以为所有平台完成此操作的代码片段,以及检测平台的方法。
根据 Java 错误 4787931 ,系统属性 user.home
在 Windows XP 上无法正常工作,因此使用此系统属性不是一个可接受的解决方案,因为它不是跨平台的。
原文由 Bruno Ranschaert 发布,翻译遵循 CC BY-SA 4.0 许可协议
您引用的错误(错误 4787391)已在 Java 8 中修复。即使您使用的是旧版本的 Java,
System.getProperty("user.home")
方法可能仍然是最好的。user.home
方法似乎适用于大量情况。 Windows 上的 100% 防弹解决方案很难,因为 Windows 对主目录的含义有一个不断变化的概念。如果
user.home
对你来说不够好,我建议选择home directory
的定义 for windows 并使用它,使用System.getenv(String)
获取适当的环境变量