我想打印首选项节点的子节点。我写了以下代码:
private void printOracleDefaults() {
Preferences p = Preferences.userRoot();
p = p.node("/HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE");
try {
for(String s : p.childrenNames())
System.out.println(s);
} catch (BackingStoreException e) {
//bla bla..
e.printStackTrace();
}
}
上面的方法不打印任何东西,虽然 ORACLE 有子:
我在做什么错或误解?
更新:
我写p = p.node("HKEY_LOCAL_MACHINE/SOFTWARE");
代替
p = p.node("HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE");
当我打印我的孩子时,p
我得到:ORACLE
!这怎么可能?那么所有其他孩子呢?(有..我通过注册表编辑器看到它们)
看起来它正在存储先前运行的先前值,这些值附加在/SOFTWARE
.