自从jdk1.4,java可以通过java.util.prefs包访问注册表,但访问的范围非常小,只能是HKLM和HKCU的javasoft子项下的prefs项(不知道我的理解是否正确?)。
要想通过java访问整个注册表,可以通过开源代码给予实现。现在这样的开源很多,基本原理都差不多通过JNI实现的,如
http://trustice.com/java/jnireg/就是其中一个。
准备工作:
到trustice网站下载其API和dll文件。我下的是registry-3.1.3.zip(URL:
ftp://ftp.gjt.org/pub/users/time/java/registry-3.1.3.zip)。解压后,在其下的bin文件夹下就有我们想要registry.jar和dll文件。
轻装上阵
第一步,在eclipse新建一个java项目-registry,并把jar文件引进来;把dll文件放到classpath下,如c:\winnt(windows)。
第二步,建立一个简单的测试单元
package com.mascot.myregistry;
import com.ice.jni.registry.*;
public class test {
public static void main(String[] str) {
try {
RegistryKey child = Registry.HKEY_LOCAL_MACHINE
.openSubKey("SOFTWARE\\Microsoft");
RegistryKey create = child.createSubKey("Mascot", "");
create.setValue(new RegStringValue(create,"hello1","hello000"));
create.setValue(new RegStringValue(create,"hello2","hello222"));
System.out.println(childs.getFullName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
其中的child是本机注册表的HKLM\SOFTWARE\Microsoft,并通过createSubKey创建Mascot子项,通过setValue为Mascot创建两个REG_SZ子项hello1、hello2,数据分别是hello000,hello222
第三步,运行程序,就可以看到注册表多了一个mascot项等等。
当然,该开源的功能不仅如此,我们还可以实现对注册表进行CRUD,还可以通过RegistryKey的connectRegistry连接远程注册表。
分享到:
相关推荐
使用JNA,我们可以轻松地访问Windows注册表。首先,我们需要引入JNA库和对应的注册表访问库,例如`com.sun.jna.platform.win32`包中的`WinReg`类。这个类提供了如`HKEY_CURRENT_USER`、`HKEY_LOCAL_MACHINE`等常量,...
Jave的Preferences只在Software\JavaSoft\Prefs操作,反射WindowsPreferences能够操作Windows注册表的其他节点. 方法: 1.public static void put(int root,String path,String key,String val) 2.public static ...
首先,由于Java本身并不直接支持对Windows注册表的访问,我们需要借助第三方库,如`JRegistryKey`,这是一个开源的Java库,允许开发者通过Java代码读取和修改Windows注册表。要使用这个库,你需要将其导入到你的项目...
在IT领域,特别是软件开发中,了解如何使用Java语言操作Windows注册表是一项关键技能。Windows注册表是Windows操作系统的核心组件之一,用于存储系统和应用程序设置的关键信息。本文将从Java操作Windows注册表的基础...
本篇文章将详细探讨如何使用Java来实现对Windows注册表的读取和写入。 首先,Java本身并不直接支持对Windows注册表的操作,但可以通过JNA(Java Native Access)库来实现这一功能。JNA允许Java程序直接调用操作系统...
在 Java 中操作注册表,通常需要借助第三方库,例如 JRegistryKey,这是一个开源的 Java 注册表库,它允许 Java 应用程序以类似文件系统的方式访问 Windows 注册表。以下是一些关键知识点: 1. **JRegistryKey 库**...
Java语言在处理操作系统级别的任务时,虽然不如C++或Python那样直接,但通过特定的库和API,也可以实现对Windows注册表的读取。在这个场景中,我们需要关注的核心知识点是Java如何与Windows系统进行交互,特别是如何...
### 使用Java修改Windows注册表的关键知识点 #### 一、引言 在开发涉及系统级配置的应用时,常常需要对Windows注册表进行操作。Java作为一种跨平台的语言,提供了多种方式来实现这一需求。本文将详细介绍三种主要的...
"Java操作注册表插件"就是这样的工具,它允许Java程序与Windows注册表进行交互。 在Java中,直接操作注册表并不像在C++或C#等语言中那样简单直接,因为Java的标准库并不包含对注册表的原生支持。为了实现这个功能,...
com.ice.jni.registry包是通过JNI(Java native interface)实现的Windows注册表操作API,可以用来访问、修改和导出Windows注册表。现在这个包已经公开了,可以放心的使用而不必担心license的问题,并且包括一个构建好...
Java作为一种跨平台的语言,虽然不能直接访问注册表,但通过特定的库和方法,我们可以实现对Windows注册表的操作。本篇文章将详细介绍如何利用Java来操作注册表,并介绍一个名为"JAVA操作注册表的神器"的工具。 ...
总的来说,这个工具为Java开发者提供了一种纯Java的方式来访问Windows注册表,这对于那些需要在Java环境中处理与操作系统紧密相关的任务的应用来说非常有用。不过,由于注册表是敏感的系统组件,因此在实际使用时应...
3. **枚举类型**:在Java中,我们可以使用枚举类型来表示Windows注册表键的常量,如`HKEY_CURRENT_USER`, `HKEY_LOCAL_MACHINE`等,这样既能提高代码可读性,也能避免硬编码错误。 4. **调用注册表API**:通过JNA...
"注册表"和"JAVA"标签明确了软件的主要技术领域,即Java编程语言和Windows注册表管理。"注册表清理"表明软件专注于注册表维护,而"JAVA课程设计"可能暗示这个项目适合于Java初学者作为课程实践,可以从中学习到如何...
这是一个java通过本地接口访问的源代码,在windows操作系统上试验成功,对于想学本地方法的有 帮助,代码中有JAVA与C语言的原始数据、对象及数组交互,有本地库中抛出例外,构造器调用等知识点,比较全面。
在 Java 中操作 Windows 注册表,需要注意 Java 的平台独立性质和 Windows 注册表的访问限制。Java 不能直接任意操作 Windows 注册表,其中 java.util.prefs 中的 Preferences 类只可以操作部分注册表。
Java作为一种跨平台的编程语言,可以用来编写程序来对Windows注册表进行分析和清理。 首先,我们要理解Java如何与Windows注册表交互。Java并不直接支持访问注册表,但可以通过Java的JNI(Java Native Interface)...
在Java编程中,操作注册表是一项相对复杂的任务,因为Java本身并不直接支持对Windows注册表的访问。然而,我们可以通过一些第三方库或者JNA(Java Native Access)来实现这一功能。下面将详细介绍如何使用Java来操作...
这里提到的"java 读取注册表(源码 + jar + dll)"就是一种解决方案,它结合了Java代码和DLL动态链接库来实现对Windows注册表的访问。 首先,`jRegistryKey.dll`是一个Windows平台下的动态链接库,它提供了底层的...
2. **Windows注册表API**:如`RegOpenKeyEx`、`RegCreateKeyEx`、`RegSetValueEx`等函数,用于打开、创建、读取、写入或删除注册表键值。在C/C++程序中,我们可以直接调用这些API来操作注册表。 3. **Runtime类**:...