我正在尝试在注册表中的以下路径中写入注册表项:
HKEY_CURRENT_USER -> 软件 -> TestApp
我目前正在做的事情:
public static void main(String[] args)
{
Preferences p = Preferences.userRoot().node("/HKEY_CURRENT_USER/Software/TestApp");
p.put("TestKey", "TestValue");
}
但它写在 HKEY_CURRENT_USER -> Software -> JavaSoft -> Prefs ->/H/K/E/Y_/C/U/R/R/E/N/T/_/U/S/E/R -> 软件 -> 测试/应用
如何让它遵循绝对路径,为什么要添加额外的斜杠?
最佳答案
您可以看看这篇关于 Read/Write the registry 的精彩博客文章
我可能会提请您注意这段代码:
/** * Write a value in a given key/value name * @param hkey * @param key * @param valueName * @param value * @throws IllegalArgumentException * @throws IllegalAccessException * @throws InvocationTargetException */ public static void writeStringValue (int hkey, String key, String valueName, String value) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { if (hkey == HKEY_LOCAL_MACHINE) { writeStringValue(systemRoot, hkey, key, valueName, value); } else if (hkey == HKEY_CURRENT_USER) { writeStringValue(userRoot, hkey, key, valueName, value); } else { throw new IllegalArgumentException("hkey=" + hkey); } }
我认为这个解决方案非常优雅,可以管理针对注册表的读/写操作。
关于java - 通过 Java 中的首选项访问 HKEY_CURRENT_USER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29368967/