从/到 Java 首选项的读取和写入在新的 Windows 8 上失败,
我有一个Java应用程序,通过使用从读取:Preferences
Preferences prefs = Preferences.userNodeForPackage(MyClass.class);
prefs.get((String)key, "");
在新的 Windows 8 计算机上,此操作失败,如下所示:
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs
at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
错误代码 5 拒绝访问。
我找不到我做错了什么。Google和SO搜索给出的只是与Windows Vista/7相关的旧结果,其中一个人错误地使用了(我如何用Java编写系统偏好设置?我可以调用 UAC 吗?systemRoot
该错误可以通过创建HKLM/Software/JavaSoft/Prefs并将权限设置为HKLM/Software/JavaSoft来“治愈”,如此处所述 Java:java.util.Preferences Failing。但这不是我可以要求我的用户在安装程序时执行的操作。
所以我正在寻找一个更好的解决方案。我最后的努力是简单地写入文件,但我想避免这种情况。这似乎也相关,我试图在不使用Windows注册表的情况下从XML使用Java Prefences,但是我看到一条与注册表相关的消息,但它在没有答案的情况下被否决了。
目前我怀疑Win8 JVM错误...
问题
- 有没有人知道不涉及写入文件的解决方案?
- 为什么相同的代码在Windows 7中工作得很好,但在Windows 8中却失败了?