java - 打印首选项节点的子节点

标签 java oracle registry

我想打印首选项节点的子节点。我编写了以下代码:

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 有子项,上面的方法不会打印任何内容:

Children of ORACLE

我做错了什么或误解了什么?

更新:

我写了p = p.node("HKEY_LOCAL_MACHINE/SOFTWARE");

而不是

p = p.node("HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE");

当我打印 p 的子元素时,我得到:ORACLE!这怎么可能?那么其他 child 呢? (有..我是通过注册表编辑器看到的)

看起来它正在存储以前运行中附加到 /SOFTWARE 旁边的值。

最佳答案

我认为你应该在这里使用 Preferences.systemRoot() 而不是 Preferences.userRoot() 。后者映射到 HKEY_CURRENT_USER。

对于 Windows,路径应为 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,然后在字符串内对其进行转义,如 HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE

注意:我自己没有尝试过。

关于java - 打印首选项节点的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14212971/

相关文章:

java - 如何使用 awt.Robot 以 native hdpi 分辨率捕获屏幕截图?

java - java中的文字纠错程序

sql - Oracle SQL数据透视查询

sql - Oracle - 按多维数据集分组 - 按不同列求和

windows-7 - 如何设置写字板的默认纯文本字体?

vba - 哪些注册表项决定 Outlook 配置文件

java - 在多线程环境下制作 volatile Executor类

javascript - 在 Firefox 中查看带有表单的 PDF

java - Jdbc驱动程序错误

powershell - 使用 Powershell 从 HKCR 返回值