0

我有一个小型 java 实用程序应用程序,它在远程计算机上执行任务。这个应用程序将为用户提供一个下拉/组合框,他们可以在其中输入他们希望连接的计算机的 IP 地址或主机名。如果用户可以在下拉列表中拥有他们连接的项目/主机的历史记录,那就太好了。

我认为我可以在可分发的 jar 中创建一个文件并使用它来维护历史记录。但是写入 jar 内的文件似乎是不可能的?替代方法是使用位于 jar 之外的文本文件、数据库等。但这不是我想做的,因为我的实用程序只有一个文件,我希望它完全独立于任何外部文件。此外,在您的 jar 文件周围放置一个文本文件或在每次运行应用程序时创建一个文本文件也不是很好。

考虑到这种情况,我可以使用哪些选项?是否有任何 API 可以帮助存储或保留历史记录?

4

2 回答 2

2

为什么不将此信息与用户主目录中的隐藏文件一起存储?许多应用程序做同样的事情。

可以通过这种方式获取用户主目录

String userhome = System.getProperty("user.home");
于 2012-04-11T15:34:07.970 回答
1

我建议将一些.dat文件保存在与 JAR 关联的某个位置。可以在同一个目录中,或者在用户的家中(如@dash1e 建议的那样)以避免任何权限问题。我想你会发现这是最简单的解决方案。

另一种选择是使用可以捆绑到 JAR 中的基于 Java 的数据库解决方案(请参阅Apache Derby等)。请注意,这会在某处创建文件,但您不必担心文件级管理,因为您只需将其作为数据库进行交互。

如果您真的坚持避免维护自己的文件,那么最后一个选择是使用Java Preferences API,它提供了一种与操作系统无关的方式,可以将系统上的数据存储在某个模糊位置。这可以说是对该 API 目标的误用,但会完成您的要求。

于 2012-04-11T15:39:37.583 回答