Ganymede(Eclipse3.4)下で実行するJVMでレジストリキーのオープンに失敗する
早速移行したGanymedeだが、奇妙な現象に遭遇している。担当しているシステム中にはプリファレンスストア(java.util.prefs.Preferences)を読み書きする初期処理であるのだが、こいつのキーの読込に失敗するのである。
Caused by: java.lang.SecurityException: Could not open windows registry node Software\JavaSoft\Prefs\hogekey at root 0x80000002: Access denied at java.util.prefs.WindowsPreferences.openKey(WindowsPreferences.java:496) at java.util.prefs.WindowsPreferences.openKey(WindowsPreferences.java:463) at java.util.prefs.WindowsPreferences.openKey(WindowsPreferences.java:449) at java.util.prefs.WindowsPreferences.putSpi(WindowsPreferences.java:595) at java.util.prefs.AbstractPreferences.put(AbstractPreferences.java:234) at java.util.prefs.AbstractPreferences.putInt(AbstractPreferences.java:341)
Windowsプラットホーム(Windows Vista)の場合プリファレンスの実装はレジストリであり、この例で言うと、
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs\hogekey
このキーの読込に失敗しているらしい。
エラー自体は"Access denied"であり権限が無いだけなので、Eclipseを起動するショートカットに管理者権限を付加すると上記例外は消失したが、そもそもEuropa(Eclipse 3.3)を使っていた時はこんな例外は発生していなかった。
どちら(3.3 or 3.4)の実装が正しいのだろうな。