java读写注册表

(我真是无聊,java搞什么注册表啊,还不如学C#去...)

用javaPreferences有很大限制,最好是下载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<RegistryKey> 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<RegistryValue> 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刷新一下能看到变化了吧
	}

}

你可能感兴趣的:(java,注册表,jRegistryKey)