java 读写注册表总结

=======java读写注册表=======
java读写注册表需要用到两种方式:
1. java.util.prefs.* 中的包
   其中 Preferences.systemRoot() 得到的是 HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs 可以在此位置之下方便的进行注册表的        读写
   Preferences.userRoot() 得到的是 HKEY_LOCAL_USER/Software/JavaSoft/prefs,可以在此位置下进行注册表的读写,但是对其他
   位置操作就不方便。
   示例代码:
   import java.util.prefs.*;  
   public class Registery {  
     String[] keys = {"aaa", "bbb", "ccc"};  
     String[] values = {"1", "2", "3"};  
     //把相应的值储存到变量中去  
    public void writeValue() {  
     // HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs下写入注册表值.  
        Preferences pre = Preferences.systemRoot().node("/javaplayer");  
        for (int i = 0; i < keys.length; i++) {  
            pre.put(keys, values);  
        }  
    }  
    public static void main(String[] args) {  
        Registery reg = new Registery();  
        reg.writeValue();  
    }  
  } 
  执行代码的结果会在 HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs/javaplayer 位置插入三个键值

2. 开源读写注册表的库 registry-3.1.3 主页地址:http://www.trustice.com/java/jnireg/index.shtml
   下载后需要将ICE_JNIRegistry.dll放到目前正在用的 jdk的bin目录下
   下面是调用的示例代码:
   //获得注册表中 HKEY_LOCAL_MACHINE/SOFTWARE/ARMS 的位置
   RegistryKey registryKey = Registry.openSubkey(Registry.HKEY_LOCAL_MACHINE, "SOFTWARE//ARMS",RegistryKey.ACCESS_ALL);
   //获得该该key对应的值
   RegistryValue registryValue = registryKey.getValue(key);     
   result = new String(registryValue.getByteData()).toString();

你可能感兴趣的:(J2EE/J2SE)