In my OSGi https://en.wikipedia.org/wiki/OSGi基于 Java 应用程序 我正在开发一个捆绑包,为系统的其余部分提供对文件系统的访问权限。除了提供对用户主目录的访问之外,我还希望提供对非用户特定区域的访问。该区域的确切用途尚未确定,但它不会用于首选项(由不同的包处理),但它可用于存储可能在运行时更改的数据。
我打算为此目的使用以下目录:
-
视窗Vista https://en.wikipedia.org/wiki/Windows_Vista and Windows 7的 https://en.wikipedia.org/wiki/Windows_7:“\程序数据”。
-
视窗XP https://en.wikipedia.org/wiki/Windows_XP:“\文档和设置\所有用户“。
-
Mac OS X https://en.wikipedia.org/wiki/Mac_OS_X:“/库/应用程序支持”。
Linux 中的合理等效项在哪里?如何从 Java 代码中处理它?
这取决于您计划存储什么类型的数据。这个答案的前提是您在运行时存储和修改数据。
与其他人的建议相反,我建议不要使用/usr/share
用于存储。来自文件系统层次结构标准 http://www.pathname.com/fhs/pub/fhs-2.3.html#USRSHAREARCHITECTUREINDEPENDENTDATA:
/usr/share 层次结构适用于所有人
只读架构独立
数据文件。
当您修改数据时,这违背了数据的只读性质/usr
子系统。
存储应用程序状态数据的似乎更好的地方是/var
,或更具体地说,/var/lib
。这也来自于等级标准 http://www.pathname.com/fhs/pub/fhs-2.3.html#THEVARHIERARCHY。你可以创建一个/var/lib/myapp
,或者如果您还使用锁定文件或日志之类的东西,您可以利用/var/lock
or /var/log
.
更深入地了解整个标准(链接到上面)——您可能会找到一个更适合您想要做的事情的地方。
就像史蒂夫·K https://stackoverflow.com/questions/1510104/where-to-store-application-data-non-user-specific-on-linux/1510182#1510182,我还建议使用 Preferences API 来获取应用程序首选项数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)