开始--运行中输入regedit就可以了
1.自己写的没问题自己测试过
(1)方法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,如图
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