日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结

發布時間:2023/12/10 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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操作系統中,注冊表是一個極小文件,其文件名為Reg.dat,里面只存放了某些文件類型的

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

應?用程序關聯,大部分的設置放在Win.ini、System.ini等多個初始化INI文件中。由于這些初始化文件不便于管理和維護,時常出現一些因?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?下只能用來操作?HKCU\Software\JavaSoft?和?HKLM\Software\JavaSoft?下及子節點的數據。

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

?

Preferences?API并不是為訪問Windows注冊表而設計的,這是值得指出的一點。

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

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

Preferences?API也是有局限的,請您考慮兩個問題:?

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

·?一個Java軟件需要讓用戶設置是否和操作系統一起啟動,類似的需求還很多。這類需求就是要求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.2.?使用JNI

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

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

?

2.?開源讀寫注冊表的庫?registry-3.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

?

轉載于:https://www.cnblogs.com/attilax/p/5963697.html

總結

以上是生活随笔為你收集整理的Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。