JavaFx 2 -自包含应用程序及其首选项,数据库等



假设我有一个跨平台可运行的应用程序

这个应用程序在外部文件中创建并读写一些数据和首选项

Bundle层次结构如下:

ApplicationFolder/application.jar
ApplicationFolder/database.odb
ApplicationFolder/config.xml

无论是在Mac, Windows还是Linux上,应用程序都知道所有内容都在她的旁边(即:/database)。Odb或/config.xml)


现在是JavaFx 2提供的自包含应用程序特性

应用程序在Windows上嵌入。exe, Mac上嵌入。app,还不知道Linux…

作为一个Mac用户,我在Mac上测试了它,看到了这个数据库。Odb和config.xml现在创建在用户根路径

因此,我同意我应该考虑一个跨平台机制来保存/读取我的应用程序关于操作系统的首选项

但是我不太确定该做什么和怎么做(也找不到任何谷歌帮助…)


在windows上,.exe被安装在一个文件夹中,所以我想我可以保持相同的行为

在Mac上,。app是一个文件夹,我应该把所有的东西都放在里面(如何得到。app的路径?!)

在Java/JavaFx中没有内置的机制吗?


非常感谢你给我的任何评论、建议、文档或其他东西

Badisi

有很多方法可以做到这一点。我在这里列出了其中的一些,没有特别的顺序。推荐的方法取决于所存储数据的类型。

Java提供了一些机制(例如属性API和首选项API)来维护应用程序首选项。

如果您的应用程序足够复杂,可以从数据库中获益,那么您可能希望使用Java EE或Spring,它们都有自己的配置机制。

对于只读配置,可以将相关文件捆绑在应用程序jar中。

要相对于应用程序jar存储定制的应用程序配置文件或客户端应用程序范围的数据库,请在运行时编写所需的文件。参见如何获取当前正在执行的jar文件所在的目录?

对于特定于用户的配置,使用System.getProperty("user.home")检索用户的主目录,然后为您的首选存储(例如"{$user.dir}/.myapp")创建一个具有隐藏文件属性的子目录,以便它不会显示在标准文件目录列表中。

如果你的应用程序依赖于互联网连接,那么你可以将一些信息存储在服务器端而不是客户端,并使用互联网协议从客户端使用它。这种方法的一个优点是,用户配置和数据可以在客户机之间自动移植。

相关内容

  • 没有找到相关文章

最新更新