1. 程式人生 > >【Java學習】java程式訪問登錄檔(win10)

【Java學習】java程式訪問登錄檔(win10)

最近在問答社群碰到一個問題,,用java訪問“HKEY_CURRENT_USER”目錄的需求。查了很多資料,,終於搞定了,,在此做以記錄。


一,java官方API(Preferences)

首先,這個類用起來比較方便,,但是有許多限制,,只能訪問“HKEY_LOCAL_MACHINE\SOFTWARE\Javasoft”,

import java.util.prefs.Preferences;

public class Main {
    String[] keys = {"testJava"};
    String[] values = {"just test java"};

    // 把相應的值儲存到變數中去
public void writeValue() { // HKEY_CURRENT_USER\Software\JavaSoft\prefs下寫入登錄檔值. Preferences pre = Preferences.userNodeForPackage(this.getClass()).node("/javaplayer"); for (int i = 0; i < keys.length; i++) { pre.put(keys[i], values[i]); } } /*** * 根據key獲取value * */
public String getValue(String key) { Preferences pre = Preferences.userNodeForPackage(this.getClass()).node("/javaplayer"); return pre.get(key, "time"); } public static void main(String[] args) { Main reg = new Main(); reg.writeValue(); System.out.println(reg.getValue("testJava"
)); } }

這裡寫圖片描述


二,使用第三方jar(jregistry-1.8.1.jar)

jregistry是一款強大的jar,,,相當好用,,,沒有限制,,可以隨心所欲訪問登錄檔(不能瞎搞,會出狀況的)

【1】下載依賴,下載地址
【2】下載解壓
【3】將jar放新增到專案中(eclipse,IDEA,都很好新增)
【4】將dll按照機子位數,,放到jdk的bin目錄下或者windows\system32目錄下(保證java程式能夠訪問到dll)
【5】環境有了,,,執行下面程式碼,,如果沒報錯正常輸出,說明環境配置好了
【6】根據需求再改改就行
再此,做一個例子(意思意思)

package JRegistryDemo;

import com.registry.RegistryKey;
import com.registry.RegistryValue;

/**
 * Created by zsl on 2017/8/28.
 */
public class JRegistryDemo {
    public static void main(String[] args) {
        RegistryKey r = new RegistryKey(RegistryKey.getRootKeyForIndex(RegistryKey.HKEY_CURRENT_USER_INDEX),
                "\\");
        if (r.getValue("test") != null) {
            RegistryValue v = r.getValue("test");
            System.out.println(v.toString());//
        } else {
            System.out.println("沒找到該key值!!");
        }
    }
}

這裡寫圖片描述
可以訪問到,,HKEY_CURRENT_USER目錄下的鍵值



參考資源連結:
百度雲連結