`
ming_fanglin
  • 浏览: 223460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 修改 Windows 注册表

阅读更多
使用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.
分享到:
评论
5 楼 liuyu220 2010-03-03  
很不错啊,不过用java修改注册表的项目不多吧。感觉挺偏僻的。不过楼主写的还真有意思
ming_fanglin 写道
优点:使用Runtime.exec()函数执行导入,嗷嗷easy。

挺好玩的
4 楼 ray_linn 2010-03-03  
真是啥破事也有人做。。。java干这事,就好像螺丝刀上钉子。。。
3 楼 renci 2010-03-03  
你强大,学习了...
2 楼 JackAndroid 2010-03-03  
多谢LZ,注册表不错不错
1 楼 whaosoft 2010-03-03  
嘿嘿 感谢lz 3年多前 我找到过java控制注册表的方法不过 我没记住网址 后来一直没看到 哈哈 今天你又弄出来了

相关推荐

    使用java修改windows注册表实用.pdf

    ### 使用Java修改Windows注册表的方法概述 在计算机领域中,Windows注册表是一个存储操作系统和其他软件配置数据的关键数据库。本文档探讨了使用Java编程语言来修改Windows注册表的不同方法及其应用场景。 #### ...

    使用java修改windows注册表.pdf

    ### 使用Java修改Windows注册表的关键知识点 #### 一、引言 在开发涉及系统级配置的应用时,常常需要对Windows注册表进行操作。Java作为一种跨平台的语言,提供了多种方式来实现这一需求。本文将详细介绍三种主要的...

    使用java修改windows注册表.doc

    ### 使用Java修改Windows注册表的关键知识点 #### 一、引言 在开发涉及系统级配置的应用时,常常需要对Windows注册表进行操作。Java作为一种跨平台的语言,提供了多种方式来实现这一需求。本文将详细介绍使用Java...

    JAVA操作windows注册表

    首先,由于Java本身并不直接支持对Windows注册表的访问,我们需要借助第三方库,如`JRegistryKey`,这是一个开源的Java库,允许开发者通过Java代码读取和修改Windows注册表。要使用这个库,你需要将其导入到你的项目...

    Java操作windows注册表

    ### Java操作Windows注册表:深入理解与实践 在IT领域,特别是软件开发中,了解如何使用Java语言操作Windows注册表是一项关键技能。Windows注册表是Windows操作系统的核心组件之一,用于存储系统和应用程序设置的...

    Java Windows 操作注册表

    通过以上步骤,我们可以利用Java有效地读取和修改Windows注册表。这个过程涉及到对JNA库的使用,以及对Windows API的理解。对于复杂的注册表操作,可能还需要处理其他数据类型,如REG_BINARY、REG_DWORD等。在实际...

    使用Java操作Windows注册表

    Java从JDK 1.4版本开始引入了一个名为`Preferences`的类,该类提供了方便的方式来管理和操作用户的首选项,其中包括对Windows注册表的操作。 `Preferences`类提供了一个层次化的键值对存储系统,允许我们创建、读取...

    java如何操作注册表源代码

    通过 Java 来操作注册表,我们可以实现跨平台的程序在 Windows 上对系统配置进行读取和修改。 在 Java 中操作注册表,通常需要借助第三方库,例如 JRegistryKey,这是一个开源的 Java 注册表库,它允许 Java 应用...

    主要原理是Java通过修改注册表实现的,简单、安全、可靠。.

    com.ice.jni.registry包是通过JNI(Java native interface)实现的Windows注册表操作API,可以用来访问、修改和导出Windows注册表。现在这个包已经公开了,可以放心的使用而不必担心license的问题,并且包括一个构建好...

    Java修改注册表

    JReg是一个用纯Java编写的库,它提供了对Windows注册表的读写操作。使用JReg,你可以直接在Java代码中调用其提供的API,比如`RegOpenKey`、`RegSetValueEx`等方法来打开或修改注册表键值。 例如,以下是一个简单的...

    Java操作注册表插件

    "Java操作注册表插件"就是这样的工具,它允许Java程序与Windows注册表进行交互。 在Java中,直接操作注册表并不像在C++或C#等语言中那样简单直接,因为Java的标准库并不包含对注册表的原生支持。为了实现这个功能,...

    java_修改注册表

    2. **Windows注册表API**:如`RegOpenKeyEx`、`RegCreateKeyEx`、`RegSetValueEx`等函数,用于打开、创建、读取、写入或删除注册表键值。在C/C++程序中,我们可以直接调用这些API来操作注册表。 3. **Runtime类**:...

    JAVA操作注册表的神器

    Java作为一种跨平台的语言,虽然不能直接访问注册表,但通过特定的库和方法,我们可以实现对Windows注册表的操作。本篇文章将详细介绍如何利用Java来操作注册表,并介绍一个名为"JAVA操作注册表的神器"的工具。 ...

    java注册表修改

    通过深入分析“java注册表修改”这一主题,我们不仅理解了Java如何与Windows注册表交互的基本原理,还学习了实际代码示例的细节。掌握这些知识对于Java开发者来说是极其宝贵的,特别是在那些需要高度定制化或系统级...

    java读取注册表的简单方法

    3. **枚举类型**:在Java中,我们可以使用枚举类型来表示Windows注册表键的常量,如`HKEY_CURRENT_USER`, `HKEY_LOCAL_MACHINE`等,这样既能提高代码可读性,也能避免硬编码错误。 4. **调用注册表API**:通过JNA...

    JAVA注册表垃圾清理

    "注册表"和"JAVA"标签明确了软件的主要技术领域,即Java编程语言和Windows注册表管理。"注册表清理"表明软件专注于注册表维护,而"JAVA课程设计"可能暗示这个项目适合于Java初学者作为课程实践,可以从中学习到如何...

    java 读取注册表(源码 + jar + dll)

    在Java编程环境中,有时我们需要与操作系统进行交互,例如读取或修改Windows注册表中的信息。在Java标准库中并没有提供直接操作注册表的API,但可以通过一些第三方库来实现这一功能。这里提到的"java 读取注册表...

    (java)注册表清理

    Java作为一种跨平台的编程语言,可以用来编写程序来对Windows注册表进行分析和清理。 首先,我们要理解Java如何与Windows注册表交互。Java并不直接支持访问注册表,但可以通过Java的JNI(Java Native Interface)...

    java操作注册表简单示例

    在Java编程中,操作注册表是一项相对复杂的任务,因为Java本身并不直接支持对Windows注册表的访问。然而,我们可以通过一些第三方库或者JNA(Java Native Access)来实现这一功能。下面将详细介绍如何使用Java来操作...

Global site tag (gtag.js) - Google Analytics