Java: java.util.Preferences Failing

Моя программа сохраняет зашифрованные данные ключа продукта на компьютер с помощью класса java.util.Preferences (system предпочтения, а не пользователя). Проблема в том, что как в Windows, так и в Linux (не тестировалось в OSX, но, вероятно, то же самое), если я не запускаю программу с sudo или с правами администратора , он выдает исключение или предупреждение всякий раз, когда пытается прочитать или сохранить данные.

Очевидно, что требовать от пользователя запуска программы с правами администратора было бы непрактично. В оптимальном случае я бы хотел, чтобы операционная система запрашивала у пользователя разрешение .

Это довольно глупо и лишает половины цели Предпочтения . Как это можно исправить?

Вот краткое изложение того, что мне нужно : Мне нужно, чтобы моя программа запрашивала разрешение у операционной системы на сохранение системных настроек.


Вот информация об ошибке

Вот ошибка когда когда я пытаюсь прочитать узел (потому что узел не существует):

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.
65
задан Jonah 18 March 2011 в 20:54
поделиться