簡體   English   中英

如何使用Java編寫Windows注冊表?

[英]How to write windows registry using Java?

我對使用Preference Class不太了解。 但是,通過在這里和其他網站上閱讀,我覺得我所擁有的應該足以寫入我選擇的節點。

Preferences userPref = Preferences.userRoot();
    userPref = userPref.node("HKEY_CURRENT_USER\\Software\\Broadcom");
    userPref.put("A", "B");

嘗試寫入節點“ HKEY_CURRENT_USER \\ Software \\ Broadcom”時,只會寫入JavaSoft節點。 無論如何,有沒有要更改子項以允許我寫入我想要的任何節點的方法?

PS我曾嘗試以不同的方式多次寫入訪問位置。 用正斜杠代替反斜杠,在“ HKEY”前面用斜杠,等等。

有人有想法么?

這里下載jna庫。 將jna-4.1.0.jar和jna-platform-4.1.0.jar文件添加到您的應用程序類路徑。 並使用Advapi32Util實用程序類讀取,寫入或刪除注冊密鑰。 我測試了一些解決方案,但大多數都不起作用。 但是jna版本的效果很好,並且具有很多功能。

這是我的測試代碼,用於更新Chromium lastrun值。

import com.sun.jna.platform.win32.Advapi32Util;
import com.sun.jna.platform.win32.WinReg;

public class Main {

    public static void main(String[] args) throws Exception {
        Advapi32Util.registrySetStringValue(WinReg.HKEY_CURRENT_USER, "Software\\Chromium", "lastrun", "13031598735788802");
    }
}

首選項API不一定完全提供對注冊表的訪問。 某些實現可能使用注冊表,但是您不能指望它。 而且,如果實現確實使用注冊表,則“首選項”層次結構的根目錄可能位於“ HKEY_CURRENT_USER \\ Software \\ Java”或類似的目錄下,並且您將無法訪問該樹之外的任何內容。

通常,如果您的問題采用“如何在Java中使用[特定於平台的功能]?”的形式,則答案為“使用JNI”或“不使用Java”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM