我的程序使用java.util.Preferences
类(系统首选项,而不是用户)将加密的产品密钥数据保存到计算机中。问题是,在Windows和Linux上(没有在OSX上测试过,但可能是一样的),如果我不使用sudo
或管理员特权运行程序,那么每当它试图读取或保存数据时,它都会发出异常或警告。
显然,要求用户以管理员权限运行该程序是不切实际的。最理想的情况是,我希望操作系统向用户询问权限。
这是非常愚蠢的,并且消除了Preferences
的一半目的。如何解决这个问题?
这里总结了我需要什么:我需要我的程序请求操作系统的许可来保存系统设置。
以下是错误信息
下面是当我尝试读取一个节点(因为该节点不存在)时出现的错误:
Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences <init>
WARNING: Could not create windows registry node Software\JavaSoft\Prefs\myapp at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences WindowsRegOpenKey1
WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs\myapp at root 0x80000002.
Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences openKey
WARNING: Could not open windows registry node Software\JavaSoft\Prefs\myapp at root 0x80000002. Windows RegOpenKey(...) returned error code 2.
Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences WindowsRegOpenKey1
WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs\myapp\subpackage at root 0x80000002.
Mar 18, 2011 9:41:15 AM java.util.prefs.WindowsPreferences openKey
WARNING: Could not open windows registry node Software\JavaSoft\Prefs\myapp\subpackage at root 0x80000002. Windows RegOpenKey(...) returned error code 2.
这就是我尝试写一个节点时发生的事情:
Mar 18, 2011 9:43:11 AM java.util.prefs.WindowsPreferences WindowsRegOpenKey1
WARNING: Trying to recreate Windows registry node Software\JavaSoft\Prefs\myapp\subpackage at root 0x80000002.
Mar 18, 2011 9:43:11 AM java.util.prefs.WindowsPreferences openKey
WARNING: Could not open windows registry node Software\JavaSoft\Prefs\myapp\subpackage at root 0x80000002. Windows RegOpenKey(...) returned error code 2.
https://stackoverflow.com/questions/5354838
复制相似问题