我们在我们的一些应用程序中使用了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