Mic*_*and 8 java settings desktop freedesktop.org
我正在寻找一种简单的跨平台方式,在JVM上获取用于存储应用程序设置和缓存数据的相应目录.例如,在Linux下的XDG规范:
~/.config/appname~/.cache/appnameWindows的东西进入C\Users\user\Application Data或某些(在Win 7上); 我认为Mac把东西放进去了~/Library/Application Settings.
是否有跨平台调用来获取这些路径位置?我找不到一个,虽然我发现了几个问题.是否有一些库为大多数常见桌面平台实现了正确的逻辑?
最糟糕的情况是,我可以抬起头来user.home假装一切都是基于XDG的Linux环境.但是,如果很容易为用户的操作系统获取正确的目录,我想这样做.
该类FileSystemView是我所知道的唯一一个包含对此类通用目录的访问权限的类,并且是跨平台的。参考文档请参阅此处的
此类包含一些可能有用的方法,例如getHomeDirectory()和getDefaultDirectory()。该类由JFileChooserSwing 接口使用。我知道它并不直接指向配置和缓存目录,但这可能是朝着正确方向迈出的一步。
对于我自己的应用程序,我采用次佳方法,尝试将所有配置和设置包含在应用程序本身中 - 即。在应用程序安装目录下创建一个“config”目录。尽管它不是整个操作系统配置的中心位置,但至少它将它保留在 java 应用程序上下文中。