一尘不染

在Linux上的哪里存储应用程序数据(非用户专用)

linux

在基于OSGi的Java应用程序中,我正在开发一个捆绑软件,以使系统的其余部分可以访问文件系统。除了提供对用户主目录的访问之外,我还希望提供对非用户特定区域的访问。尚不确定该区域的用途,但不是用于首选项(由其他捆绑软件处理),但是可以用于存储在运行时可能会更改的数据。

我打算为此使用以下目录:

  • Windows Vista和Windows 7:“ \ ProgramData”。
  • Windows XP:“ \ Documents and Settings \ All Users”。
  • Mac OS X:“ /库/应用程序支持”。

在Linux中,什么才是明智的选择?如何从Java代码中获得对它的处理?


阅读 768

收藏
2020-06-02

共1个答案

一尘不染

这取决于您计划存储哪种数据。该答案是在运行时存储和修改数据的前提下进行的。

与其他人的建议相反,我建议不要/usr/share用于存储。从文件系统层次结构标准

/ usr / share层次结构适用于所有只读体系结构独立的数据文件。

在修改数据时,这与/usr子系统的只读特性背道而驰。

一个似乎更好的存储应用程序状态数据的位置将是/var或更具体地说/var/lib。这也来自层次结构标准。您可以创建一个/var/lib/myapp,或者如果您还使用锁定文件或日志之类的东西,则可以利用/var/lock/var/log

从整体上更深入地了解标准(链接到上面)-您可能会找到适合您想要做的更好的地方。

像Steve K一样,我也建议您使用Preferences API来获取应用程序首选项数据。

2020-06-02