关闭

java访问WIN32注册表

标签: java编译器平台jdk框架任务
744人阅读 评论(1) 收藏 举报

前言:最近的一个任务中,是在插件开发完成WIN32注册表的访问,现将其总结一下。我尝试了两种方法,一种是,通过 (JSR 10)为 Java 1.4 增加的 java.util.prefs 包。还有一种是cdt里面提供的用:cmd命令:“regedit /ea Temp.txt HKEY_LOCAL_MACHINE/SOFTWARE/Elastos/XDK1.0/”
一,java.util.prefs 包

一,java.util.prefs 包
java.util.prefs 包下的 Preferences 类提供操作首选项的基本框架。这个类提供了一系列静态和抽象方法来操作两套首选项(其中一套是用户首选项,另一套是系统首选项)中的其中一套。
使用静态方法,会得到一个特定于平台的实现,就象 WindowsPreferences 类; 然后可以使用由这个特定于平台的实现实现的抽象方法来做这项工作。用包将程序的首选项分组是个好习惯,可以避免与其它应用程序的命名冲突。 当查找Preferences 对象时,只需传递包的名称。在使用非静态方法时, 可以传递对自身的引用(this),程序将确定查找的是哪个包,如清单 1 所示。
清单 1. 从非静态方法获取 Preferences 对象

  Preferences userPrefs = Preferences.userNodeForPackage(this);
  Preferences sysPrefs = Preferences.systemNodeForPackage(this);
但是,如果使用的是静态方法,就必须得到根节点并自己提供包,如清单 2 所示。
清单 2. 从静态方法获取 Preferences 对象

  Preferences userPrefs = Preferences.userRoot().node("/net/zukowski/ibm");
  Preferences sysPrefs = Preferences.systemRoot().node("/net/zukowski/ibm");
有了进行操作的节点后,就可以轻松地设置、获取、除去和转储设置选项。可以实现:写数据,读数据,转储数据,侦听。

但是jdk提供这种方法存取,得注册表信息是在一个他自己定义的Prefs的节点下面。不能够满足我们的这次需求.


Cdt里面也要通过注册表读取c的编译器。具体实现思路是通过cmd“regedit /ea Temp.txt HKEY_LOCAL_MACHINE/SOFTWARE/Elastos/XDK1和.0/”将注册表的信息存放到Temp.txt的文本文件里面。然后通过文件流的读取道一个list里面。然后根据需要解析读取所要的路径。

REGEDIT4

[HKEY_LOCAL_MACHINE/SOFTWARE/Elastos/XDK1.0/]
"Version"="1.0"
"InstallDir"="D://Elastos20.SDK"

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20421次
    • 积分:413
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:7篇
    • 译文:4篇
    • 评论:3条
    最新评论