【Java學習】java程式訪問登錄檔(win10)
阿新 • • 發佈:2019-01-25
最近在問答社群碰到一個問題,,用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目錄下的鍵值
參考資源連結:
百度雲連結