JAVA修改windows注册表
1.查看注册表的方法
首先,使用键盘的win+R打开运行框,输入regedit,就可以打开注册表。
2.使用cmd修改注册表的方法
- REG QUERY 返回注册表的子项下的项和下一层子项的列表
- REG ADD 向注册表中添加新的子项或条目
- REG DELETE 删除注册表中的一个或一些项
- REG COPY 将注册表项复制到本地或远程计算机上指定的位置
- REG SAVE 将指定的子项、条目和注册表值的副本保存在指定的文件中
- REG RESTORE 将保存的子项和条目写回到注册表
- REG LOAD 将保存的子项和项写入注册表中的不同子项, 此命令适用于用于排查或编辑注册表项的临时文件
- REG UNLOAD 删除使用 reg load 操作加载的注册表部分
- REG COMPARE 比较指定的注册表子项或项
- REG EXPORT 将本地计算机的指定子项、项和值复制到文件中,以便传输到其他服务器
- REG IMPORT 将包含导出的注册表子项、条目和值的文件的内容复制到本地计算机的注册表中
- REG FLAGS == 设置标志==
如果需要进一步的了解参数并使用,可以使用命令加上 /?,例如想知道REG ADD的使用方法,就使用 REG ADD /? 如下图所示
键值的数据类型:(如果忽略,则采用REG_SZ)
- REG_SZ 字符串
- REG_MULTI_SZ 多字符串值
- REG_EXPAND_SZ 长度可变的数据串
- REG_DWORD 32位数字
- REG_QWORD 64位数字
- REG_BINARY 二进制
- REG_NONE 空值
也可以参阅官方网站的讲解:https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/reg
3.使用java修改windows注册表
例如:要在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中添加一个项 Data REG_DWORD 值:20
命令行语言为:REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v Data /t REG_DWORD /d 20 /f
如果cmd提示操作成功,但是在注册表编辑器中却没有变化,可以刷新一下,或者点进其它文件夹然后再回到修改的文件夹,应该就可以成功了
java代码为:
失败
String f_changeInterval = "REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters /v Data /t REG_DWORD /d 20 /f";
Runtime.getRuntime().exec(f_changeInterval);
注意:实际测试中,如果不实用String[ ] 而是直接使用String,很容易出现找不到对应文件的错误,所以推荐使用下面的方法。
成功
String[] f_changeInterval = {"REG", "ADD", "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters", "/v",
"Data", "/t", "REG_DWORD", "/d", "20", "/f"};
Runtime.getRuntime().exec(f_changeInterval);