论坛首页 入门技术论坛

java 修改 Windows 注册表

浏览 4637 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-03-02  
使用java修改windows注册表
关键字: java, windows, registry

项目中用到,整理如下:



方法1:利用java.util.prefs.Preferences



这是jdk里面内置的功能,利用prefs包,我们可以将跟程序相关的一些首选项保存在注册表中。关于这部分google上有很多,不再累述,但有一点需要说明的是,java prefs api把我们的信息存到哪里去了呢?



答案是:如果选用systemNode,则保存在[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs]下的子节点下面,如果选的是userNode....   则保存在[HKEY_CURRENT_USER\Software\JavaSoft\Prefs]下的子节点下面。



有兴趣深入研究的朋友可以看ibm developer上面的这篇文章:用 Preferences API 存储对象



优点:跨平台,到了linux上该方案仍然有效。

缺点:不能编辑注册表中的任意位置。





方法2:使用"regedit /s ×××.reg"导入写好的注册表文件



当然这个文件也可是你自动生成的。总之呢regedit会打开注册表编辑器,而regedit /s则会把你写好的注册表文件导入注册表中。这个注册表文件的功能也是很强大的,在里面你可以删除,也可以添加注册表中的内容。



关于这个reg文件的写法,可以参照微软上面的这篇文章:

如何通过使用注册项 (.reg) 文件添加、修改或删除注册表子项和值



优点:使用Runtime.exec()函数执行导入,嗷嗷easy。

缺点:不够灵活,只能导入指定的文件,即使你这个注册表文件是你动态生成的。但是在应用程序的安装与卸载过程中使用该方案还是比较不错的。



方法3: 使用第三方项目gdapi



以上两个方法都不适合你?看来你需要更加强大、灵活的东西,好吧,是jni上场的时候了,不过好在我们不用重新发明轮子,已经有人为我们做好了包装。gdapi便是其中之一。



他的链接为:http://gdapi.sourceforge.net/

下载地址为:http://sourceforge.net/project/showfiles.php?group_id=124229



我们要使用到他其中的com.ice.jni.registry.WindowsRegistry类

他的javadoc地址为:http://gdapi.sourceforge.net/api/com/ice/jni/registry/package-summary.html



不管是下载的打包文件,还是google上面,都有它的例子,很丰富。那么关于gdapi的介绍就到这里。



缺点:稍微需要你学习那么一小下,需要依赖第三方的jar包,甚至一些dll。

有点:更强大灵活。



其他方法:



在方法三中,我有意显式给出了gdapi的链接,目的是为了让大家一眼看出来他是sourceforge上的一个项目,其实类似的项目 sourceforge上,以及别的组织上还有很多。比如jRegEdit, jRegistryKey, registry.... search with the key:windows registry on sourceforge hehe



enjoy.

the end.
   发表时间:2010-03-03  
嘿嘿 感谢lz 3年多前 我找到过java控制注册表的方法不过 我没记住网址 后来一直没看到 哈哈 今天你又弄出来了
0 请登录后投票
   发表时间:2010-03-03  
多谢LZ,注册表不错不错
0 请登录后投票
   发表时间:2010-03-03  
真是啥破事也有人做。。。java干这事,就好像螺丝刀上钉子。。。
0 请登录后投票
   发表时间:2010-03-03  
很不错啊,不过用java修改注册表的项目不多吧。感觉挺偏僻的。不过楼主写的还真有意思
ming_fanglin 写道
优点:使用Runtime.exec()函数执行导入,嗷嗷easy。

挺好玩的
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics