当前位置: 首页 > 面试题库 >

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

丁志勇
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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

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

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

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

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

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



 类似资料:
  • 问题内容: 在基于OSGi的Java应用程序中,我正在开发一个捆绑包,为系统的其余部分提供对文件系统的访问。除了提供对用户主目录的访问之外,我还希望提供对非用户特定区域的访问。尚不确定该区域的用途,但不是用于首选项(由其他捆绑软件处理),但是可以用于存储在运行时可能会更改的数据。 我打算为此使用以下目录: Windows Vista和Windows 7:“ \ ProgramData”。 Wind

  • 您可以在哪里运行用“集成”数据存储构建的GAE应用程序?也就是说,那些在Google平台之前构建的应用程序使数据存储成为一个独立于“核心”GAE服务的服务。那就是不修改项目。 目前的谷歌应用引擎能运行“遗留”应用吗?

  • 问题内容: 因此,我有了这种elasticsearch安装,可以在用logstash插入数​​据时使用kibana可视化它们。 conf文件中的所有内容均已注释,因此它使用的是相对于elasticsearch文件夹的默认文件夹。 这怎么可能? 但是,此命令将删除数据: 谢谢。 ps:忘了说我在窗户上 问题答案: 如果您在Linux上安装了ES,则默认数据文件夹位于(CentOS)或(Ubuntu)

  • 我将redis用于发布/订阅以及服务器端缓存。我的意思是,我的应用服务器将redis服务器作为一个进程运行(也可以作为缓存)。我有几个瘦客户端(运行redis client)以发布/订阅模式连接到此应用服务器。我想知道redis在哪里存储缓存数据?单独在服务器中,或者在客户端中也会有一个副本。如果有近100个Redis客户端通过发布/订阅通道连接到服务器,那么以这种方式使用Redis也是一个好主意

  • 问题内容: 我需要在android中使用mapview控件,但似乎无法理解如何运行。是否安装了eclipse?我似乎找不到下载链接。 谢谢 问题答案: 是标准Java发行版的一部分。 在Windows 64位计算机上,通常会在以下位置找到jdk 它用于管理您可以使用jar文件签名的密钥和证书。 如果您提供所需做的更多详细信息,我们可能会给您更具体的答案。

  • 问题内容: 我正在Eclipse中进行Java项目。我创建了一个名为“ Spring”的用户库,并向其中添加了所有的Spring jar。我的问题是,Eclipse在哪里存储该库?是否将所有jar文件复制到磁盘上某个新目录中?还是在某些配置文件中维护有关哪些jar属于用户库的信息? 问题答案: Eclipse不会复制用户库的任何内容,它只是具有特定于机器的绝对路径的容器。用户库定义存储在工作空间中