2013-01-10 35 views
4

讓說,我有一個跨平臺運行的應用程序了JavaFx 2 - 自包含的應用程序和自己的喜好,數據庫等

此應用程序創建,然後讀取/外部文件

捆綁層次寫一些數據和偏好情況如下:

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

無論是在Mac,Windows或Linux,應用程序就知道這一切都是她的旁邊(即:/database.odb或/config.xml)


現在來用了JavaFx 2

提供的自給式應用程序功能的應用程序嵌入.exe文件在Windows,Mac上的.app和還不關於Linux知道......

由於一個Mac用戶,我已經在Mac上測試過它,並且看到database.odb和config.xml現在在用戶根目錄下創建。

因此我同意我應該考慮跨平臺機制來保存/讀取我的關於操作系統的應用程序首選項

但我不是很確定做什麼以及如何去做(找不到任何谷歌搜索的幫助或者..)


在Windows中的.exe安裝文件夾中,所以我想我可以保持相同的行爲

在Mac上,是的.app文件夾,我應該保持內(如何獲得。應用程序路徑?!)

是不是有一個內置的機制,一切在Java/JavaFx中?


非常感謝任何意見,建議,文檔,否則,你可以給我

Badisi

回答

2

有很多方法可以做到這一點。我在這裏列出了一些沒有特別的順序。推薦的方法取決於所存儲數據的類型。

Java提供了一對機制(例如,properties API和preferences API)來維護應用程序首選項。

如果您的應用程序足夠複雜以從數據庫中受益,那麼您可能需要使用Java EE或Spring,它們都有自己的配置機制。

對於只讀配置,可以將應用程序jar中的相關文件捆綁在一起。

要存儲相對於應用程序jar的自定義應用程序配置文件或客戶端應用程序範圍的數據庫,請在運行時編寫所需的文件。見How do I get the directory that the currently executing jar file is in?

對於用戶特定的配置,使用System.getProperty("user.home")檢索用戶的主目錄,然後創建一個子目錄您的喜好存儲(例如"{$user.dir}/.myapp")具有隱藏文件屬性,使其不標準的文件目錄列表中顯示出來。

如果您的應用程序依賴於互聯網連接,那麼您可以存儲一些此信息服務器端而不是客戶端,並使用來自客戶端的使用Internet協議。這種方法的一個優點是用戶配置和數據自動移植到客戶端機器上。

相關問題