困难在于,它应该是跨平台的。Windows 2000, XP, Vista, OSX, Linux, 其他unix变种。我正在寻找一个能在所有平台上完成这个任务的代码片段,以及一个检测平台的方法。
现在,你应该知道bug 4787931,user.home
不能正常工作,所以请不要给我提供教科书式的答案,我可以自己在手册中找到这些。
你提到的bug(bug 4787391)已经在Java 8中被修复。即使你使用的是旧版本的Java,System.getProperty("user.home")
方法可能仍然是最好的。user.home'的方法似乎在很多情况下都有效。在Windows上,一个100%无懈可击的解决方案是很难的,因为Windows对home目录的含义有一个变化的概念; 如果
user.home对你来说还不够好,我建议为windows选择一个
home目录的定义并使用它,用
System.getenv(String)`得到适当的环境变量。