[英]Simple, cross-platform to get well-known desktop paths in Java?
我正在JVM上尋找一種簡單的跨平台方式,以獲取用於存儲應用程序設置和緩存數據的適當目錄。 例如,在Linux上的XDG規范下:
~/.config/appname
config ~/.cache/appname
Windows的東西放在C\\Users\\user\\Application Data
或類似的東西中(在Win 7上); 我認為Mac將東西放在~/Library/Application Settings
。
是否有跨平台調用來獲取這些路徑位置? 我找不到一個,盡管我發現有幾個問題要問。 是否有一些庫為大多數常見的台式機平台實現了正確的邏輯?
最壞的情況是,我只能查找user.home
並假裝一切都是基於XDG的Linux環境。 但是,如果很容易為用戶的操作系統獲取正確的目錄,我想這樣做。
FileSystemView
類是我所知道的唯一一個包含跨此類通用目錄訪問權限的類。 請參閱此處的文檔
此類包含一些可能有用的方法,例如getHomeDirectory()
和getDefaultDirectory()
。 JFileChooser
此類用於Swing接口。 我知道它並不直接指向config和cache目錄,但這可能是朝着正確方向邁出的一步。
對於我自己的應用程序,我嘗試采用次佳方法,即嘗試使應用程序本身包含所有配置和設置-即。 在安裝應用程序的目錄下創建一個“ config”目錄。 即使它不是整個操作系統的config的中心位置,至少也將其保留在java應用程序上下文中。
我們基本上建立了一個實用程序類來提供此信息,主要基於user.home
和os.name
系統屬性。
我們有一系列方法可以讓我們建立路徑位置,例如...
SystemUtilities.getApplicationSettingsPath("Name of my awesome app");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.