2009-08-21 64 views
4

我有在Windows XP/VISTA/7和Mac OS X上運行我目前保存配置文件到SWT的Java應用程序:使用Java在Windows和OS X上保存程序配置文件的最佳位置?

System.getProperty( 「的user.home」)+文件名

隨着Windows Vista和Windows 7安全性的變化,這似乎不再是最好的保存地點了。

此文件保存註冊密鑰信息等信息,如果無法保存或刪除文件,這對我的用戶來說很煩人。

我應該使用更好的路徑嗎?

此外,Mac OS X上每用戶應用程序數據的首選路徑是什麼?

回答

2

安全性有哪些變化?我明白他們禁止在Program Files中寫作,我不知道他們禁止在用戶家中寫信。
這將是一個嚴重的兼容性休息,我有很多的應用程序(在Unix的模式,即以一個點前綴「隱藏」)寫在那裏,無論是直接一個文件或文件夾中。
現在,像其他許多應用程序一樣,編寫Application Data folder似乎更「友好」(但很少跨平臺的應用程序似乎使用以前的解決方案...),但確切的位置似乎很難找到Java,並且需要平臺檢測才能在其他平臺上執行其他操作。

替代似乎是使用Preferences API,即。 java.util.prefs.Preferences

+1

+1,首選項API是最佳解決方案的應用程序數據保存路徑是「〜/ Library/Application Support」 – 2009-08-21 23:39:17

0

太陽本身,其Java控制面板,有同樣的問題(bug 6487334):他們的控制面板,在不同的完整性級別運行,不能同時讀取/寫入自己的部署目錄

他們就搬到了。 c:\users\<username>\appdata\local,但不得不不依賴於System.getProperty("user.home"),因爲這一天,它使用可被設置爲不正確的值,如果窗口是「扭捏」註冊表項:bug 6519127

因此,使用HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\*問題How to get local application data folder in Java?,是正確的地方開始爲您的設置尋找讀/寫訪問權限
您可以閱讀它,例如,SWT Win32 Extension項目。

保持用戶的主目錄中的數據的興趣,他們將用戶的配置文件的一部分,它可以是一個roaming profile,保存在註銷和登錄(用經常在公司的工作站)恢復

相關問題