標籤:java 註冊表 windows
利用java.util.prefs包操作windows註冊表
Java 操作windows註冊表,主要的API
主要介面
| 介面 |
說明 |
| NodeChangeListener |
用於接收喜好設定節點變更事件的接聽程式。 |
| PreferenceChangeListener |
用於接收喜好設定節點變更事件的接聽程式。 |
| PreferencesFactory |
產生Preferences對象的factory對象。 |
主要的類
| 類 |
說明 |
| AbstractPreferences |
此類提供了Preferences類的骨幹實現,從而大大簡化了實現此類的任務。 |
| NodeChangeEvent |
Preferences節點發出的事件,用於指示已添加或移除該節點的子節點。 |
| PreferenceChangeEvent |
Preference節點發出的事件,用於指示已經添加或移除喜好設定,或者喜好設定的值已被更改。 |
| Preferences |
喜好設定資料的階層 collection 中的節點。 |
主要異常
| 異常 |
說明 |
| BackingStoreException |
拋出該異常表明由於內部儲存故障或者不能聯絡內部儲存而無法完成preferences操作。接聽程式。 |
| InvalidPreferencesFormatException |
拋出此異常表明根據Preferences規範,輸入內容不符合preferences集合的正確 XML 文件類型,從而無法完成操作。 |
範例代碼
import java.util.prefs.BackingStoreException;import java.util.prefs.Preferences;public class Test { public static void main(String[] args) { Preferences pre=Preferences.systemNodeForPackage(Test.class); pre.put("userName", "******"); pre.putInt("age", 26); try { pre.flush(); } catch (BackingStoreException e) { e.printStackTrace(); } Preferences now=Preferences.systemNodeForPackage(Test.class); System.out.println(now.get("userName", "為空白")); System.out.println(now.getInt("age", 0)); }}
其它
如果選的是systemNodeForPackage則儲存在[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs]
如果選的是userNodeForPackage則儲存在[HKEY_CURRENT_USER\Software\JavaSoft\Prefs]
存在有不少限制,如果想在註冊表的自動啟動並執行鍵裡增加一個自己的程式。還是要用Java調用批處理來實現。
利用java.util.prefs包操作windows註冊表