锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
Preferences鐨勮瑙?/strong>錛?br />
棣栧厛瑕佹寚鏄庣殑鏄細Preferences API騫朵笉鏄負璁塊棶Windows娉ㄥ唽琛ㄨ岃璁$殑銆?br />
鎴戜滑涔嬫墍浠ヤ細鏈変笂闈㈢殑璇В鏄敱浜嶴un鐨刉indows鐗堟湰鐨凧DK鍦ㄥ疄鐜癙references API鏃朵嬌鐢ㄤ簡Windows娉ㄥ唽琛ㄤ綔涓哄瓨鍌ㄥ簱錛屽嵆鎴戜滑鐢≒references API瀛樺偍鐨勬暟鎹細淇濆瓨鍒癢indows娉ㄥ唽琛ㄤ腑錛岃繖鏍稰referenes API涔熷氨鏈変簡璁塊棶Windows娉ㄥ唽琛ㄧ殑鑳藉姏銆備絾鏄崲鍒板叾瀹冪殑騫沖彴鎴栧叾瀹冨巶鍟嗙殑JDK瀹炵幇鍙堜細鎬庝箞鏍峰憿錛熻繖涓棶棰樻槸鍜孭references API鐨勫疄鐜扮浉鍏崇殑錛屾垜浠病鏈夊姙娉曞洖絳斻?br />
Preferences閫傜敤鐨勬潯浠?/strong>錛?br />
濡傛灉紼嬪簭涓嶅叧蹇冨瓨鍌ㄥ簱鐨勭粏鑺傦紝鍙槸瑕佹壘涓涓瓨鏀炬暟鎹殑鍦版柟錛岄偅涔圥references API寰堝悎閫傘?br />
Preferences API鐨勫眬闄愶細
涓涓狫ava杞歡錛岃繖嬈℃垜鍦⊿un鐨凧DK涓婅繍琛屽茍浣跨敤Preferences API淇濆瓨浜嗘垜鐨勪釜浜哄枩濂斤紝涓嬫鎴戝湪IBM鐨凧DK涓婅繍琛岋紝榪欐椂鎴戠殑涓漢鍠滃ソ榪樺彲浠ラ氳繃Preferences API寰楀埌鍚楋紵鍙兘鍙互涔熷彲鑳戒笉鍙互錛岃繖鏃剁殑琛屼負鏄敱Sun鍜孖BM鐨凱references API瀹炵幇鍐沖畾鐨勩傦紙鍦ㄧ浉鍚岀殑JDK瀹炵幇涓婂彲浠ヤ嬌鐢≒references API鏉ュ湪涓嶅悓鐨勭▼搴忛棿鍏變韓鏁版嵁錛?/font>
涓涓狫ava杞歡闇瑕佽鐢ㄦ埛璁劇疆鏄惁鍜屾搷浣滅郴緇熶竴璧峰惎鍔紝綾諱技鐨勯渶姹傝繕寰堝銆傝繖綾婚渶姹傚氨鏄姹侸ava紼嬪簭鏈夌湡姝g殑鍜岀浉鍏蟲搷浣滅郴緇熷崗鍚岀殑鑳藉姏銆傝繖縐嶈兘鍔涗笉鏄疨references API鐨勮璁$洰鏍囥?/font>
浣跨敤JNI 鍙傝冭祫鏂?/font>
Windows鎿嶄綔緋葷粺鎻愪緵浜嗘搷浣滄敞鍐岃〃鐨凙PI錛屽洜姝ょ敤JNI灝咼ava鍜岃繖浜汚PI榪炴帴璧鋒潵鎴戜滑灝辮幏寰椾簡鐢↗ava鎿嶄綔娉ㄥ唽琛ㄧ殑鑳藉姏銆傝繖璇磋搗鏉ユ湁浜涚畝鍗曪紝瀹炵幇璧鋒潵鍗撮渶瑕佸鐞嗗ぇ閲忕殑緇嗚妭銆傚垢榪愮殑鏄繖鏍風殑宸ヤ綔宸茬粡鏈変漢鍋氫簡錛屾垜浠鎰熻阿浠栦滑銆備笅闈㈡垜浠氨鏉ョ湅鐪嬪叾涓殑涓涓寘銆?br />
com.ice.jni.registry鍖呮槸閫氳繃JNI(Java native interface)瀹炵幇鐨刉indows娉ㄥ唽琛ㄦ搷浣淎PI錛屽彲浠ョ敤鏉ヨ闂佷慨鏀瑰拰瀵煎嚭Windows娉ㄥ唽琛ㄣ傜幇鍦ㄨ繖涓寘宸茬粡鍏紑浜嗭紝鍙互鏀懼績鐨勪嬌鐢ㄨ屼笉蹇呮媴蹇僱icense鐨勯棶棰橈紝騫朵笖鍖呮嫭涓涓瀯寤哄ソ鐨凞LL鍜孞ava銆丆鐨勬簮浠g爜銆傚畠鍙互鍦↗ava 1.1鍜屾洿楂樼殑鐗堟湰涓婂伐浣溿?br />
涓嬮潰璇︾粏鐨勬弿榪頒竴涓嬭繖涓寘涓殑綾伙紝鏁伴噺涓嶆槸寰堝錛?/font>
RegistryKey鐨勬柟娉曟瑕侊細
鏂規硶 | 綆鐭弿榪?/font> |
void closeKey() | 鍏抽棴璇ubkey銆?/font> |
RegistryKey connectRegistry(java.lang.String hostName) | 榪炴帴榪滅▼涓繪満hostName鐨勬敞鍐岃〃銆?/font> |
RegistryKey createSubKey(java.lang.String subkey, java.lang.String className) | 鍒涘緩鍜屾墦寮璇ey鐨剆ubkey錛屽叿鏈夊啓鏉冮檺銆?/font> |
RegistryKey createSubKey(java.lang.String subKey, java.lang.String className, int access) | 鍒涘緩鍜屾墦寮璇ey鐨剆ubkey錛屽叿鏈夋寚瀹氱殑鏉冮檺銆?/font> |
int decrDoubleWord(java.lang.String valueName) | 璇ユ柟娉曞皢娑堝噺REG_DWORD鐨勫箋?/font> |
void deleteSubKey(java.lang.String subKey) | 鍒犻櫎璇ubkey銆?/font> |
void deleteValue(java.lang.String valueName) | 鍒犻櫎涓涓懡鍚嶇殑鍊箋?/font> |
static java.lang.String expandEnvStrings(java.lang.String exString) | 灞曞紑exString涓殑鐜鍙橀噺銆?/font> |
void export(java.io.PrintWriter out, boolean descend) | 瀵煎嚭key銆?/font> |
void finalize() | 閲嶈澆浜嗙殑finalize()鏂規硶錛岀‘淇濊兘澶熷叧闂璳ey銆?/font> |
void flushKey() | 紜繚榪欎釜key琚啓鍒扮鐩橈紝瀵規ц兘鏈変竴瀹氱殑褰卞搷銆?/font> |
java.lang.String getDefaultValue() | 寰楀埌璇ey鐨勯粯璁ゅ箋?/font> |
java.lang.String getFullName() | 寰楀埌key鐨勫叏鍚嶃?/font> |
int getMaxSubkeyLength() | 寰楀埌鎵鏈塻ubkey鍚嶇О鐨勬渶澶ч暱搴︺?/font> |
int getMaxValueDataLength() | 寰楀埌鎵鏈塻ubkey鍊肩殑鏈澶ч暱搴︺?/font> |
int getMaxValueNameLength() | 寰楀埌鎵鏈夊肩殑鍚嶇О鐨勬渶澶ч暱搴︺?/font> |
java.lang.String getName() | 寰楀埌璇ey鐨勫悕縐般?/font> |
int getNumberSubkeys() | 寰楀埌subkey鐨勬暟閲忋?/font> |
int getNumberValues() | 寰楀埌鍊肩殑鏁伴噺銆?/font> |
java.lang.String getStringValue(java.lang.String valueName) | 寰楀埌REG_SZ鎴朢EG_EXPAND_SZ鐨勫箋?/font> |
RegistryValue getValue(java.lang.String valueName) | 寰楀埌valueName鐨勫箋?/font> |
boolean hasDefaultValue() | 鍒ゆ柇璇ey鏄惁鏈夐粯璁ゅ箋?/font> |
boolean hasOnlyDefaultValue() | 鍒ゆ柇璇ey鏄惁鍙湁榛樿鍊箋?/font> |
int incrDoubleWord(java.lang.String valueName) | 璇ユ柟娉曞皢澧炲己REG_DWORD鐨勫箋?/font> |
java.util.Enumeration keyElements() | 鏋氫婦璇ey鐨剆ubkey鐨勫悕縐般?/font> |
RegistryKey openSubKey(java.lang.String subkey) | 鎵撳紑璇ey鐨剆ubkey錛屽叿鏈夊啓鏉冮檺銆?/font> |
RegistryKey openSubKey(java.lang.String subKey, int access) | 鎵撳紑璇ey鐨剆ubkey錛屽叿鏈夋寚瀹氱殑鏉冮檺銆?/font> |
java.lang.String regEnumKey(int index) | 寰楀埌璇ey鍦╥ndex澶勭殑subkey銆?/font> |
java.lang.String regEnumValue(int index) | 寰楀埌璇ey鍦╥ndex澶勭殑subkey鐨勫箋?/font> |
void setCreated(boolean created) | 璁劇疆璇ey鐨刢reated鐘舵併?/font> |
void setValue(RegistryValue value) | 璁劇疆璇ey鐨勫箋?/font> |
void setValue(java.lang.String valueName, RegistryValue value) | 璁劇疆valueName鐨勫箋?/font> |
java.util.Enumeration valueElements() | 鏋氫婦璇ey鐨勫肩殑鍚嶇О銆?/font> |
boolean wasCreated() | 鍒ゆ柇璇ey鏄opened榪樻槸琚玞reated鍜宱pened銆?/font> |
鏈鍚庢垜浠潵鐪嬩竴涓唬鐮佺ず渚嬶細
package org.solol.test; import com.ice.jni.registry.NoSuchKeyException; import com.ice.jni.registry.RegStringValue; import com.ice.jni.registry.Registry; import com.ice.jni.registry.RegistryException; import com.ice.jni.registry.RegistryKey; /** * @author solo L * */ public class JNIRegistryTest { /** * @param args */ public static void main(String[] args) { //鍒涘緩娉ㄥ唽琛ㄩ」騫惰緗浉搴旂殑鍊? try { RegistryKey software = Registry.HKEY_LOCAL_MACHINE .openSubKey("SOFTWARE"); RegistryKey subKey = software.createSubKey("SubKeyName", ""); subKey.setValue(new RegStringValue(subKey, "subKey1", "subKey1Value")); subKey.setValue(new RegStringValue(subKey, "subKey2", "subKey2Value")); subKey.closeKey(); } catch (NoSuchKeyException e) { e.printStackTrace(); } catch (RegistryException e) { e.printStackTrace(); } //鎵撳紑娉ㄥ唽琛ㄩ」騫惰鍑虹浉搴旂殑鍊? try { RegistryKey software = Registry.HKEY_LOCAL_MACHINE. openSubKey("SOFTWARE"); RegistryKey subKey = software.openSubKey("SubKeyName"); String subKey1Value = subKey.getStringValue("subKey1"); String subKey2Value = subKey.getStringValue("subKey2"); System.out.println(subKey1Value); System.out.println(subKey2Value); subKey.closeKey(); } catch (NoSuchKeyException e) { e.printStackTrace(); } catch (RegistryException e) { e.printStackTrace(); } } }
鍒涘緩鐨勬敞鍐岃〃欏瑰鍥炬墍紺猴細
![]()
杈撳嚭緇撴灉涓猴細
subKey1Value
subKey2Value
璇存槑錛氭垜鐨勪綋浼?#8220;絎竴姝ワ細鎶婁笅杞戒笅鏉ョ殑jar鍖呭姞杞藉埌宸ョ▼鍐咃紝絎簩姝ワ紝鎶婁笌jar鍖呭湪涓璧風殑dll鏂囦歡鎷瘋礉鍒頒綘jdk瀹夎鐩綍涓媆jre\bin鏂囦歡澶逛笅”