2009-04-15 63 views
3

如果在Windows(Vista)的系統,我應該把數據應該是可讀可寫的每個人,即每個計算機用戶? Vista的C:\ Users \ xxx \ AppData \ something,C:\ Program Files和C:\ ProgramData目錄和UAC的概念有點混亂。將全局應用程序數據放在Vista中的位置?

此外,沒有任何現成的解決方案,確定了Java的位置嗎?我想它需要與本地庫進行一些交互,因爲System.getProperties只有user.home和user.dir,它們都不是全局可寫的。

回答

5

在Vista C:\ ProgramData是這個地方,這取代了曾經被認爲是C:\ Documents和Settings \ AllUsers的\ AppData的在XP。

我不知道在Java中這樣做的具體..但是,在ALLUSERSPROFILE環境變量爲您提供了路徑,如果你能得到的那舉行。您應該始終使用此選項而不是硬編碼路徑,因爲文件夾名稱會在操作系統的不同國際版本中更改。

+0

謝謝!看來System.getenv(「ALLUSERSPROFILE」)至少在我的系統上給出了C:\ ProgramData。 – 2009-04-15 08:21:04

1

此外,有沒有準備好 解決方案來確定這些位置 與Java?

您可以檢查approrpirate環境變量,例如%PROGRAMDATA%,%PROGRAMFILES%等。

5

如果你需要允許不具有管理員權限修改全局設置,然後正確的做法是爲應用程序創建一個安裝用戶在安裝過程中設置的「通用應用程序數據」文件夾,使得權限用戶區域允許寫入。

看到這個職位:Where to put common writable application files?