我有一些关于注册表的问题。
我们有
Preferences p = Preferences.userRoot();
如果我们执行
p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft")
它将返回 true。
之后:
p = p.node("/HKEY_CURRENT_USER/Software/Policies");
for(String s : p.childrenNames()){
System.out.println(">" + s);
}
我们看到它有一个 child :“Windows”。但是
p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft/Windows")
返回错误。为什么?
谢谢。
更新
好的。我有一些错误。让我再试一次:为什么
p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft/Windows")
返回错误?
最佳答案
如果你执行显示的代码行,当你到达该行时,按照显示的顺序执行
p.nodeExists("/HKEY_CURRENT_USER/Software/Policies/Microsoft/Windows")
p
不再指向用户 root,而是指向“/HKEY_CURRENT_USER/Software/Policies”。
顺便说一句,您在第三个代码示例中可能遗漏了:
p = p.node("/HKEY_CURRENT_USER/Software/Policies");
应该是
p = p.node("/HKEY_CURRENT_USER/Software/Policies/Microsoft");
关于java - 使用 java.util.prefs.Preferences 处理 Windows 注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548307/