服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

Java通过CMD方式读取注册表任意键值对代码实践

2019-06-26 13:14yaominghui JAVA教程

这篇文章主要介绍了Java通过CMD方式读取注册表任意键值对代码实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下

需要读取如图所示注册表【HKEY_LOCAL_MACHINE\SOFTWARE\EasyDrv7】节点下的【DateTime】的值

Java通过CMD方式读取注册表任意键值对代码实践

直接上代码:

package com.beibei.common.util.cmd;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 注册表操作工具类
* @author 北北
* @date 2019年6月19日下午8:21:02
*/
public class RegistryUtil {
private static Logger logger = LoggerFactory.getLogger(RegistryUtil.class);
/**
* <pre>
* 读取注册表指定节点所有的键值对
* </pre>
* @author 北北
* @date 2019年6月19日下午8:43:56
* @param nodePath
* @return
*/
public static Map<String, String> readNode(String nodePath) {
Map<String, String> regMap = new HashMap<>();
try {
Process process = Runtime.getRuntime().exec("reg query " + nodePath);
process.getOutputStream().close();
InputStreamReader isr = new InputStreamReader(process.getInputStream());
String line = null;
BufferedReader ir = new BufferedReader(isr);
while ((line = ir.readLine()) != null) {
String[] arr = line.split(" ");
if(arr.length != 4){
continue;
}
regMap.put(arr[1], arr[3]);
}
process.destroy();
} catch (IOException e) {
logger.error("读取注册表失败, nodePath: " + nodePath, e);
}
return regMap;
}
/**
* <pre>
* 读取注册表指定节点指定key的值
* </pre>
* @author 北北
* @date 2019年6月19日下午8:43:24
* @param nodePath
* @param key
* @return
*/
public static String readValue(String nodePath, String key) {
Map<String, String> regMap = readNode(nodePath);
return regMap.get(key);
}
public static void main(String[] args) {
String paramValue = RegistryUtil.readValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\EasyDrv7", "DateTime");
System.out.println(paramValue);
}
}

其原理是通过CMD命令【reg query HKEY_LOCAL_MACHINE\SOFTWARE\EasyDrv7】 读取节点全部键值对,再通过解析得到我们所需要的【DateTime】的值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • JAVA教程关于各种排列组合java算法实现方法

    关于各种排列组合java算法实现方法

    这篇文章介绍了几种用JAVA实现的排列组合算法,有需要的朋友可以参考一下...

    脚本之家3682019-06-18
  • JAVA教程浅谈为什么Java里面String类是不可变的

    浅谈为什么Java里面String类是不可变的

    这篇文章主要介绍了为什么Java里面String类是不可变的,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    葬月魔帝1402019-06-22
  • JAVA教程Java设计模式—观察者模式详解

    Java设计模式—观察者模式详解

    这篇文章主要介绍了Java设计模式—观察者模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    newname4552019-06-21
  • JAVA教程Zookeeper连接超时问题与拒绝连接的解决方案

    Zookeeper连接超时问题与拒绝连接的解决方案

    今天小编就为大家分享一篇关于Zookeeper连接超时问题与拒绝连接的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    qq_238762134322019-06-20
  • JAVA教程详解tryAcquire()、addWaiter()、acquireQueued()

    详解tryAcquire()、addWaiter()、acquireQueued()

    这篇文章主要tryAcquire()、addWaiter()、acquireQueued()的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    胖虎。。3632019-06-24
  • JAVA教程rocketmq消费负载均衡--push消费详解

    rocketmq消费负载均衡--push消费详解

    这篇文章主要介绍了rocketmq消费负载均衡--push消费详解,本文介绍了DefaultMQPushConsumerImpl消费者,客户端负载均衡相关知识点。,需要的朋友可以参考下...

    有爱jj4592019-06-25
  • JAVA教程elasticsearch启动警告无法锁定JVM内存

    elasticsearch启动警告无法锁定JVM内存

    今天小编就为大家分享一篇关于elasticsearch启动警告无法锁定JVM内存,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    Scub4882019-06-21
  • JAVA教程JAVA8 十大新特性详解

    JAVA8 十大新特性详解

    本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API...

    网络4532019-06-17