sinat_17602239
2017-08-25 13:22
采纳率: 75%
浏览 1.2k
已采纳

java.util.prefs操作注册表问题,为什么读取不到

图片说明
节点明明是存在的。Preferences.userNodeForPackage(this.getClass())不是会得到HKEY_CURRENT_USER节点吗,怎么会返回false

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 鼠小 2017-08-25 14:37
    已采纳

    好像不是,,,我用类似的测了一下,,,得到的是这个路径,,,看下面截图:
    图片说明

    这个貌似是java程序生成注册表的位置,,我的测试代码如下:

     import java.util.prefs.Preferences;
    
    public class Main {
        String[] keys = {"testJava"};
        String[] values = {"just test java"};
    
        // 把相应的值储存到变量中去
        public void writeValue() {
            // HKEY_CURRENT_USER\Software\JavaSoft\prefs下写入注册表值.
            Preferences pre = Preferences.userNodeForPackage(this.getClass()).node("/javaplayer");
            for (int i = 0; i < keys.length; i++) {
                pre.put(keys[i], values[i]);
            }
        }
    
        /***
         * 根据key获取value
         *
         */
        public String getValue(String key) {
            Preferences pre = Preferences.userNodeForPackage(this.getClass()).node("/javaplayer");
            return pre.get(key, "time");
        }
    
        public static void main(String[] args) {
            Main reg = new Main();
            reg.writeValue();
            System.out.println(reg.getValue("testJava"));
        }
    
    }
    

    有问题还可以讨论,,,对你有帮助,,,请采纳

    点赞 打赏 评论
  • blownewbee 2017-08-25 15:48

    windows 7上面如果权限不足,访问注册表会放在沙箱里面,不是实际的注册表键。

    点赞 打赏 评论
  • cloudyzhao 2017-08-26 01:32
    点赞 打赏 评论
  • sinat_17602239 2017-08-26 03:40

    大家可以看看我之前发的用第三方jar访问注册表的帖子,现在还没解决

    点赞 打赏 评论

相关推荐 更多相似问题