(我真是无聊,java搞什么注册表啊,还不如学C#去...
)
用java的Preferences有很大限制,最好是下载jRegistryKey,解压出jRegistryKey.jar和jRegistryKey.dll引入项目中
import java.util.Iterator;
import ca.beq.util.win32.registry.RegistryKey;
import ca.beq.util.win32.registry.RegistryValue;
import ca.beq.util.win32.registry.RootKey;
import ca.beq.util.win32.registry.ValueType;
public class CaRegTest1 {
public static void main(String[] args) {
//列出HKEY_CURRENT_USER的子键
RegistryKey current_user = new RegistryKey(RootKey.HKEY_CURRENT_USER);
if(current_user.hasSubkeys()){
Iterator keys = current_user.subkeys();
while(keys.hasNext()) {
RegistryKey k = keys.next();
System.out.println(k.getName());
}
}
//列出 HKEY_CURRENT_USER/Environment 的所有键值的名称、类型和数据
RegistryKey env = new RegistryKey(RootKey.HKEY_CURRENT_USER,"Environment");
if(env.hasValues()) {
Iterator values = env.values();
while(values.hasNext()) {
RegistryValue v = values.next();
System.out.println(v.getName()+"\t"+v.getType());
System.out.println("\t"+v.getData());
}
}
//写入注册表
RegistryKey newKey = new RegistryKey(RootKey.HKEY_CURRENT_USER,"Environment\\NewKey");
newKey.create();//创建新的键HKEY_CURRENT_USER/Environment/NewKey
RegistryValue value = new RegistryValue("My Paht",ValueType.REG_SZ,"hahah\\lalal");
newKey.setValue(value);//在新创建的键里写入键值,在注册表中按F5刷新一下能看到变化了吧
}
}