我們在我們的一些應用程序中使用了Java偏好設置,並沒有真正注意到這一點,因爲打電話的實用程序相當陳舊,並且是在Windows XP中編寫的。但似乎Java偏好不再存儲在Windows 7的註冊表中 - 或者它們存儲在不同的地方。Windows 7中存儲的Java首選項在哪裏?
,我希望它是:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs
但我沒有看到它在那裏。
是什麼使得它wierder是,當我運行這個程序:
public static void main(final String[] args) throws BackingStoreException {
Preferences systemRoot = Preferences.systemRoot();
Preferences preferences = systemRoot.node("com/mycompany/settings");
systemRoot.put("foo", "bar");
systemRoot.put("baz", "lolz");
System.out.println("-------------------------------");
String[] keys = preferences.keys();
for(String key : keys) {
System.out.println(key);
}
System.out.println("-------------------------------");
keys = systemRoot.keys();
for(String key : keys) {
System.out.println(key);
}
}
它實際上寫(我可以評論的推出並再次運行它和它的作品),但我沒有看到新鍵在註冊表中。
此外,我似乎無法看到任何地方記錄。提前致謝。
編輯#1這個問題的唯一原因是設置更改取決於它運行的環境。這就是說,通過手動插入註冊表項並進行一些檢查來模擬該環境通常很有用。
我當時是以管理員身份運行,但我沒有在註冊表中看到我期望他們的密鑰。
你可以使用Sysinternals的進程監視器看到該過程的註冊表和文件系統操作,並嘗試推斷讀取/寫入的位置。 – 2011-02-09 16:22:34
爲什麼它應該在HKEY_LOCAL_MACHINE下存儲任何東西?我期望它在[`HKEY_CURRENT_USER`](http://en.wikipedia.org/wiki/Windows_Registry#HKEY_CURRENT_USER_.28HKCU.29)下生活。另外:你爲什麼在意?這是沒有證據的,原因是:你不應該依賴它,它可以隨時改變。 – 2011-02-09 16:25:32
必須在那裏:btw你以管理員身份運行嗎? – bestsss 2011-02-09 16:27:09