簡體   English   中英

簡單,跨平台即可在Java中獲得知名的桌面路徑嗎?

[英]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.homeos.name系統屬性。

我們有一系列方法可以讓我們建立路徑位置,例如...

SystemUtilities.getApplicationSettingsPath("Name of my awesome app");

暫無
暫無

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

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