利用java.util.prefs包操作windows注册表

利用java.util.prefs包操作windows注册表

Java 操作windows注册表,主要的API

主要接口

接口 说明
NodeChangeListener 用于接收首选项节点更改事件的侦听器。
PreferenceChangeListener 用于接收首选项节点更改事件的侦听器。
PreferencesFactory 生成Preferences对象的factory对象。

主要的类

说明
AbstractPreferences 此类提供了Preferences类的骨干实现,从而大大简化了实现此类的任务。
NodeChangeEvent Preferences节点发出的事件,用于指示已添加或移除该节点的子节点。
PreferenceChangeEvent Preference节点发出的事件,用于指示已经添加或移除首选项,或者首选项的值已被更改。
Preferences 首选项数据的层次结构 collection 中的节点。

主要异常

异常 说明
BackingStoreException 抛出该异常表明由于内部存储故障或者不能联系内部存储而无法完成preferences操作。侦听器。
InvalidPreferencesFormatException 抛出此异常表明根据Preferences规范,输入内容不符合preferences集合的正确 XML 文档类型,从而无法完成操作。

范例代码

import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;

public class Test {
    public static void main(String[] args) {
        Preferences pre=Preferences.systemNodeForPackage(Test.class);
        pre.put("userName", "******");
        pre.putInt("age", 26);
        try {
            pre.flush();
        } catch (BackingStoreException e) {
            e.printStackTrace();
        }
        Preferences now=Preferences.systemNodeForPackage(Test.class);
        System.out.println(now.get("userName", "为空"));
        System.out.println(now.getInt("age", 0));
    }
}

其它

如果选的是systemNodeForPackage则保存在[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs]

如果选的是userNodeForPackage则保存在[HKEY_CURRENT_USER\Software\JavaSoft\Prefs]

存在有不少限制,如果想在注册表的自动运行的键里增加一个自己的程序。还是要用Java调用批处理来实现。

你可能感兴趣的:(java,windows,注册表)