Javafx 2 JavaFX2-自包含应用程序及其首选项、数据库等

Javafx 2 JavaFX2-自包含应用程序及其首选项、数据库等,javafx-2,preferences,self-contained,Javafx 2,Preferences,Self Contained,假设我有一个跨平台的可运行应用程序 该应用程序创建并读取/写入外部文件中的一些数据和首选项 包层次结构如下所示: ApplicationFolder/application.jar ApplicationFolder/database.odb ApplicationFolder/config.xml 无论是在Mac、Windows还是Linux上,应用程序都知道一切都在她身边(即:/database.odb或/config.xml) 现在是JavaFX2提供的自包含应用程序特性 该应用程序嵌

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

该应用程序创建并读取/写入外部文件中的一些数据和首选项

包层次结构如下所示:

ApplicationFolder/application.jar
ApplicationFolder/database.odb
ApplicationFolder/config.xml
无论是在Mac、Windows还是Linux上,应用程序都知道一切都在她身边(即:/database.odb或/config.xml)


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

该应用程序嵌入在Windows上的.exe中,Mac上的.app中,但还不了解Linux

作为一名Mac用户,我在Mac上对其进行了测试,发现database.odb和config.xml现在是在用户根路径上创建的

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

但我不太清楚该怎么做,怎么做(在谷歌上也找不到任何帮助)


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

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

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


非常感谢您给我的任何评论、建议、文档或其他信息


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

Java提供了两种机制(例如API和API)来维护应用程序首选项

如果您的应用程序足够复杂,可以从数据库中获益,那么您可能希望使用JavaEE或Spring,这两种工具都有自己的配置机制

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

要相对于应用程序jar存储定制的应用程序配置文件或客户端应用程序范围的数据库,请在运行时编写所需的文件。看

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

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