java 读写注册表总结

开始--运行中输入regedit就可以了
1.自己写的没问题自己测试过
(1)方法1,如图
java 读写注册表总结_第1张图片

package com.dao;
import java.util.prefs.*;  
import java.*;
import java.util.*;
public class Registery {
     static String[] keys = {"aaa", "bbb", "ccc"};  
     static 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[i], values[i]);  
       }  
   }
   //从注册表中循环读取键值对,单独根据名称读取
public String getRegedit(String key) {
Preferences pref=Preferences.systemRoot().node("/javaplayer");
// 读取注册表值
String RegeditValue  ;
for (int i = 0; i < keys.length; i++) {  
//            pre.put(keys[i], values[i]);  
//         System.out.println(pref.get("inspath", "")+"-注册表中的地址");
// RegeditValue = pref.get("inspath", "");
// RegeditValue = pref.get(keys[i], values[i]);
System.out.println(pref.get(keys[i], values[i])+"-注册表中的地址");
       }
RegeditValue = pref.get(key, "");
System.out.println(RegeditValue);
return RegeditValue;  
}
   public static void main(String[] args) {  
       Registery reg = new Registery();  
       reg.writeValue();//调用想注册表添加值
       reg.getRegedit("aaa");//从注册表中读取值
   }  
}
(2)方法2,如图
java 读写注册表总结_第2张图片
package com.dao;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.prefs.Preferences;
 
import com.zerog.ia.api.pub.CustomCodePanel;
import com.zerog.ia.api.pub.CustomCodePanelProxy;
 
public class regedit extends CustomCodePanel implements ActionListener {
  //创建CommonEnvironmentPanel类对象(其中有取实际路径和默认路径的方法)
    CommonEnvironmentPanel a = new CommonEnvironmentPanel();
    //取实际安装路径的实体类参数
    CommonEnvironment env = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
          System.out.println(new regedit().getRegedit()+"-----");
}
public String getRegedit() {
Preferences pref=Preferences.systemRoot().node("/org/installer");
// 读取注册表值
System.out.println(pref.get("inspath", "")+"-注册表中的地址");
String RegeditValue = pref.get("inspath", "");
return RegeditValue;
}
public void setKeyValue(String keys,String values) {
  Preferences pre = Preferences.systemRoot().node("/org/javaplayer");  
           pre.put(keys, values); //添加键值
}
public void getKeyValue() {
}
    public void setRegedit()  {
    env = a.getEnvDir();
    // TODO Auto-generated method stub
// Preferences pref=Preferences.userRoot().node("/org/installer");
Preferences pref=Preferences.systemRoot().node("/org/installer");
// pref.put("inspath", "D://WangLi".toLowerCase());
String getRegedit = env.getRealInstallDir();
pref.put("inspath", getRegedit.toLowerCase());
// 读取注册表值
System.out.println(pref.get("inspath", ""));
    }
@Override
public boolean setupUI(CustomCodePanelProxy arg0) {
// TODO Auto-generated method stub
return false;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
 

2.不是自己写的东西转载别人的(写数据的时候有问题,我改了,可以用。)

=======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[i], values[i]);  
        }  
    }  
    public static void main(String[] args) {  
        Registery reg = new Registery();  
        reg.wri

你可能感兴趣的:(java 读写注册表总结)