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