在Java中查找用户主目录的最佳方法是什么?

困难在于它应该是跨平台的。Windows 2000、XP、Vista、OSX、Linux和其他unix变体。我正在寻找一段可以在所有平台上实现这一点的代码,以及一种检测平台的方法

现在,您应该知道bug 4787931说明user.home无法正常工作,因此请不要向我提供教科书上的答案,我可以在手册中找到这些答案

您引用的bug(bug 4787391)已在Java8中修复。即使您使用的是旧版本的Java,System.getProperty(“user.home”)方法可能仍然是最好的。user.home方法似乎在很多情况下都有效。Windows上的100%防弹解决方案很难实现,因为Windows对主目录的含义有一个不断变化的概念。

如果user.home对您来说不够好,我建议您为windows选择home directory的定义并使用它,使用System.getenv(String)获取适当的环境变量

发表评论