jRegistryKey读取注册表的例子及jar包下载

http://xiaohuafyle.iteye.com/blog/1606538 

出于跨平台的考虑,java在当初设计的时候,并没有考虑用java读取windows的注册表。但是其后,开发者经常遇到处理注册表的情况,所以java在后续的jdk中新增了一个折中的设计。即可以让那些实际需要处理注册表的开发者可以满足心愿,又避免开发者过度使用操作注册表的类库,而影响java的跨平台性。 
    Java的jdk提供的处理注册表的类,只能在HKEY_LOCAL_MACHINE.SOFTWARE.JavaSoft.Prefs对注册表做增删改查的操作. 

例如: 
Java代码 

 收藏代码

  1. // save regist flag to regedit  
  2. Preferences pre = Preferences.systemRoot().node("/jedmp");  
  3. pre.put("regist", "regist的信息");  
  4. //read and print regist flag  
  5. System.out.print(pref.get("regist","regist not found"));  


    实际开发者可能希望,java不要有这样的限制,而可以直接操作windows的所有注册表.java虽然没有直接满足我们的要求,但是第三方的jRegistryKey却可以帮助我们. 
首先,从附件中将jRegistryKey.jar和jRegistryKey.dll下载下来.注意,jRegistryKey.dll文件要放在项目的根目录下.然后即可直接操作windows的全部注册表内容了. 

例如: 
Java代码 

 收藏代码

  1. // create a new key, "Test", under HKLM  
  2. RegistryKey r = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE, "Test");  
  3. if(!r.exists()) {  
  4. r.create();  
  5. } // if   
  6.   
  7. // create value entries  
  8. RegistryValue v = new RegistryValue("aString", ValueType.REG_SZ, "test");  
  9. r.setValue(v);  
  10.   
  11. v.setName("aDword");  
  12. v.setType(ValueType.REG_DWORD);  
  13. v.setData(new Integer(0x1001001));  
  14. r.setValue(v);  
  15.   
  16. // read value entries  
  17. Iterator i = r.values();  
  18. while(i.hasNext()) {  
  19. v = (RegistryValue)i.next();  
  20. System.out.println(v.toString());  
  21. } // while  
  22.   
  23. // delete registry key  
  24. r.delete();  


对于java操作注册表更详细的说明,请见 
http://www.iteye.com/topic/82291

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值