在基于OSGi的Java应用程序中,我正在开发一个捆绑软件,以使系统的其余部分可以访问文件系统。除了提供对用户主目录的访问之外,我还希望提供对非用户特定区域的访问。尚不确定该区域的用途,但不是用于首选项(由其他捆绑软件处理),但是可以用于存储在运行时可能会更改的数据。
我打算为此使用以下目录:
在Linux中,什么才是明智的选择?如何从Java代码中获得对它的处理?
这取决于您计划存储哪种数据。该答案是在运行时存储和修改数据的前提下进行的。
与其他人的建议相反,我建议不要/usr/share用于存储。从文件系统层次结构标准:
/usr/share
/ usr / share层次结构适用于所有只读体系结构独立的数据文件。
在修改数据时,这与/usr子系统的只读特性背道而驰。
/usr
一个似乎更好的存储应用程序状态数据的位置将是/var或更具体地说/var/lib。这也来自层次结构标准。您可以创建一个/var/lib/myapp,或者如果您还使用锁定文件或日志之类的东西,则可以利用/var/lock或/var/log。
/var
/var/lib
/var/lib/myapp
/var/lock
/var/log
从整体上更深入地了解标准(链接到上面)-您可能会找到适合您想要做的更好的地方。
像Steve K一样,我也建议您使用Preferences API来获取应用程序首选项数据。