簡體   English   中英

在Java中不使用數據庫的情況下保留項目的歷史記錄

[英]Keeping history of items without using a database in java

我有一個小的Java實用程序應用程序,它在遠程計算機上執行任務。 該應用程序將為用戶提供一個下拉列表/組合框,他們可以在其中輸入要連接到的計算機的IP地址或主機名。 如果用戶可以在下拉列表中擁有他們已連接的項目/主機的歷史記錄,那就太好了。

我以為我可以在可分發jar中創建一個文件,並用它來維護歷史記錄。 但是似乎無法在jar中寫入文件嗎? 替代方法是使用位於jar外部的文本文件,數據庫等。 但這並不是我想做的,因為我的實用程序應用程序只是一個文件,我希望它完全獨立於任何外部文件。 每次運行應用程序時,在jar文件周圍粘貼文本文件或創建文本文件也不是一件好事。

考慮到這種情況,我可以使用哪些選項? 是否有任何可以幫助存儲或保存歷史的api?

您為什么不將此信息與隱藏文件一起存儲在用戶主目錄中? 許多應用程序執行相同的操作。

您可以通過這種方式獲取用戶主目錄

String userhome = System.getProperty("user.home");

我建議將一些.dat文件保存在與JAR相關的位置。 可以位於同一目錄中,也可以位於用戶主目錄中(如@ dash1e建議),以避免出現任何權限問題。 我認為您會發現這是最簡單的解決方案。

另一個選擇是使用基於Java的數據庫解決方案,該解決方案可以捆綁到您的JAR中(請參閱Apache Derby等)。 請注意,這會在某個位置創建文件,但是您不必擔心文件級管理,因為您只是將其作為數據庫進行交互。

如果您確實堅持要避免維護自己的文件,那么最后一個選擇是使用Java Preferences API ,它提供了一種與操作系統無關的方式,可以在某些混淆的位置將數據存儲在系統上。 可以說這有點濫用了此API的目標,但可以滿足您的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM