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();

你可能感兴趣的:(java,jdk,Access)