日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Atitit.操作注冊表 樹形數據庫 注冊表的歷史 java版本類庫總結

Atitit.操作注冊表 樹形數據庫 注冊表的歷史 java版本類庫總結

來源:程序員人生   發布時間:2015-06-05 09:06:30 閱讀次數:3020次

Atitit.操作注冊表 樹形數據庫 注冊表的歷史 java版本類庫總結

 

1. 注冊表是樹形數據庫 1

2. 注冊表的由來 1

3. Java  操作注冊表 2

3.1. 使用Preferences API (限定訪問路徑了) 2

3.2. 使用JNI 3

3.3. Jregistrykey 推薦 4

3.4. Jregistry 4

4. org.openqa.selenium.os.WindowsUtils 4

4.1. 和進程管理 4

 

1. 注冊表是樹形數據庫

樹形數據庫,但不提供類似SQL的查詢接口

 

 

2. 注冊表的由來

在Windows 3.x操作系統中,注冊表是1個極小文件,其文件名為Reg.dat,里面只寄存了某些文件類型的

注冊表所設定的默許打開方式

應 用程序關聯,大部份的設置放在Win.ini、System.ini等多個初始化INI文件中。由于這些初始化文件不便于管理和保護,經常出現1些因 INI文件遭到破壞而致使系統沒法啟動的問題。為了使系統運行得更加穩定、硬朗,Windows 95/98設計師們借用了Windows NT中的注冊表的思想,將注冊表引入到Windows 95/98操作系統中,而且將INI文件中的大部份設置也移植到注冊表中,因此,注冊表在Windows 95/98操作系統的啟動、運行進程中起側重要的作用。

 

作者:: 老哇的爪子 Attilax 艾龍,  EMAIL:1466519819@qq.com

轉載請注明來源: http://blog.csdn.net/attilax

 

3. Java  操作注冊表

3.1. 使用Preferences API (限定訪問路徑了)

由于java程序是“write once, run everywhere”,用java讀寫注冊表,那程序的跨平臺性就差了。java對注冊表的操作,在jdk1.4之前的版本中,那是不可能的,只能用 JNI來實現;但是jdk1.4以后提供的prefs包可以操作windows注冊表,不過定死了root只在SOFTWARE/JavaSoft /prefs下,估計也是出于這類兩難吧,又要保證所謂平臺無關,還要照顧大家對windows的依賴

。而 JDK 提供操作 Windows 的 API 也就是 Preferences,由于這個 API 也是跨平臺的,所功能比較弱,在 Win32 下只能用來操作 HKCUSoftwareJavaSoft 和 HKLMSoftwareJavaSoft 下及子節點的數據。

自由訪問注冊表其他鍵的值光用 Java 是做不到的,必定方案就是 JNI

 

Preferences API其實不是為訪問Windows注冊表而設計的,這是值得指出的1點。

我們之所以會有上面的誤解是由于SunWindows版本的JDK在實現Preferences API時使用了Windows注冊表作為存儲庫,即我們用Preferences API存儲的數據會保存到Windows注冊表中,這樣Preferenes API也就有了訪問Windows注冊表的能力。但是換到其它的平臺或其它廠商的JDK實現又會怎樣樣呢?這個問題是和Preferences API的實現相干的,我們沒有辦法回答。 

如果程序不關心存儲庫的細節,只是要找1個寄存數據的地方,那末Preferences API很適合。

Preferences API也是有局限的,請您斟酌兩個問題: 

? 1個Java軟件,這次我在SunJDK上運行并使用Preferences API保存了我的個人喜好,下次我在IBMJDK上運行,這時候我的個人喜好還可以通過Preferences API得到嗎?可能可以也可能不可以,這時候的行動是由SunIBMPreferences API實現決定的。(在相同的JDK實現上可使用Preferences API來在不同的程序間同享數據) 

? 1個Java軟件需要讓用戶設置是不是和操作系統1起啟動,類似的需求還很多。這類需求就是要求Java程序有真實的和相干操作系統協同的能力。這類能力不是Preferences API的設計目標。 

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, values);   
        }   
    }   
    public static void main(String[] args) {   
        Registery reg = new Registery();   
        reg.writeValue();   
    }   
  }  
  履行代碼的結果會在 HKEY_LOCAL_MACHINE/Software/JavaSoft/prefs/javaplayer 位置插入3個鍵值

3.2. 使用JNI

Windows操作系統提供了操作注冊表的API,因此用JNIJava和這些API連接起來我們就取得了用Java操作注冊表的能力。這說起來有些簡單,實現起來卻需要處理大量的細節。榮幸的是這樣的工作已有人做了,我們要感謝他們。下面我們就來看看其中的1個包。

com.ice.jni.registry包是通過JNI(Java native interface)實現的Windows注冊表操作API,可以用來訪問、修改和導出Windows注冊表。現在這個包已公然了,可以放心的使用而不 必擔心license的問題,并且包括1個構建好的DLLJavaC的源代碼。它可以在Java 1.1和更高的版本上工作。 

 

2. 開源讀寫注冊表的庫 registry⑶.1.3 主頁地址:http://www.trustice.com/java/jnireg/index.shtml
   下載后需要將ICE_JNIRegistry.dll放到目前正在用的 jdk的bin目錄下

3.3. Jregistrykey 推薦

3.4. Jregistry 

 jRegistry通過JNI技術來訪問WINDOWS注冊表API。

 

4. org.openqa.selenium.os.WindowsUtils

writeIntRegistryValue

writeStringRegistryValue

runRegQuery

 

4.1. 和進程管理

 

 

  public static void main(String[] args) throws Exception {

Line 50:  public static void traceWith(Logger log) {

Line 54:  public static void killByName(String name) {

Line 58:  public static void tryToKillByName(String name) {

Line 68:  public static void kill(String[] cmdarray) throws Exception {

Line 126:  private static void killPID(String processID) {

Line 131:  public static Map<String, String> procMap() throws Exception {

Line 171:  public static synchronized Properties loadEnvironment() {

Line 182:  public static String getProgramFilesPath() {

Line 186:  public static String getProgramFiles86Path() {

Line 190:  private static String getEnvVarPath(String envVar, String defaultValue) {

Line 201:  public static ImmutableList<String> getPathsInProgramFiles(String childPath) {

Line 207:  private static String getFullPath(String parent, String child) {

Line 211:  public static String getLocalAppDataPath() {

Line 220:  public static String getEnvVarIgnoreCase(String var) {

Line 230:  public static File findSystemRoot() {

Line 250:  public static String findWMIC() {

Line 267:  public static File findWBEM() {

Line 280:  public static String findTaskKill() {

Line 295:  public static String findReg() {

Line 319:  public static boolean isRegExeVersion1() {

Line 330:  public static Class<?> discoverRegistryKeyType(String key) {

Line 358:  public static String readStringRegistryValue(String key) {

Line 384:  public static int readIntRegistryValue(String key) {

Line 418:  public static boolean readBooleanRegistryValue(String key) {

Line 431:  public static boolean doesRegistryValueExist(String key) {

Line 452:  public static void writeStringRegistryValue(String key, String data)

Line 477:  private static String executeCommand(String commandName, String[] args) {

Line 489:  public static void writeIntRegistryValue(String key, int data) {

Line 517:  public static void writeBooleanRegistryValue(String key, boolean data) {

Line 521:  public static void deleteRegistryValue(String key) {

Line 540:  private static String runRegQuery(String key) {

Line 556:  public static boolean thisIsWindows() {

Line 560:  private static class RegKeyValue {

 

 

參考

Atitit.各種  數據類型 ( 樹形結構,  ) 的結構與存儲數據庫 attilax  總結.doc

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------

上一篇 APP開發目錄

下一篇 ios筆記-NSSet

分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美日韩系列 | 99国产精品久久久久久久久久 | 九九亚洲精品 | 99热久久是国产免费66 | 成人欧美一区二区三区视频网页 | 国产精品久久久久久妇 | 99久久免费看精品国产 | 日韩精品高清一区二区三区 | 国产精品自在线 | 99久久综合| 国产剧情自拍 | 日韩国产在线观看 | 国产欧美日本在线 | 国产不卡一区 | 在线观看日韩精品 | av一级毛片 | 亚洲欧美日韩在线播放 | 美日韩在线观看 | 完全免费在线视频 | 久久福利一区二区 | 国产精品1区 | 成人久久精品 | 操操日 | 精品久草 | 欧美视频在线观看免费 | 免费视频在线观看网站 | 亚洲国产精品一区二区第一页 | 国产一区二区中文字幕 | а√天堂中文最新版资源 | 中国性猛交xxxx乱大交3 | 国产精品亚洲一区二区三区在线 | 亚洲精品乱码97久久久 | 久久91| 日本精品视频一区二区 | 青青草国产精品 | 能看av的网站 | 久久综合九色综合久久久精品综合 | 久久精品夜夜夜夜夜久久 | 91精品国产综合久久久久久久久 | 欧美日韩国产精品综合 | 国产精品久久久久久久久久久久冷 |