【发布时间】:2010-05-29 17:16:16
【问题描述】:
如何使用 Java 编写系统首选项,使用 Preferences.systemRoot()?
我试过了:
Preferences preferences = Preferences.systemRoot();
preferences.put("/myapplication/databasepath", pathToDatabase);
但我收到此错误消息:
2010-maj-29 19:02:50 java.util.prefs.WindowsPreferences openKey
VARNING: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002. Windows RegOpenKey(...) returned error code 5.
Exception in thread "AWT-EventQueue-0" java.lang.SecurityException: Could not open windows registry node Software\JavaSoft\Prefs at root 0x80000002: Access denied
at java.util.prefs.WindowsPreferences.openKey(Unknown Source)
at java.util.prefs.WindowsPreferences.openKey(Unknown Source)
at java.util.prefs.WindowsPreferences.openKey(Unknown Source)
at java.util.prefs.WindowsPreferences.putSpi(Unknown Source)
at java.util.prefs.AbstractPreferences.put(Unknown Source)
at org.example.install.Setup$2.actionPerformed(Setup.java:43)
我想这样做,因为我想安装一个嵌入式 JavaDB 数据库,并让计算机上的多个用户与应用程序一起使用同一个数据库。
如何解决这个问题?我可以调用 UAC 并以 Java 管理员身份执行此操作吗?如果我在写入时以管理员身份登录,如果我以用户身份登录,我可以使用我的 Java 应用程序读取这些值吗?
【问题讨论】:
标签: java windows uac preferences securityexception