Итак, у меня была такая же проблема, поэтому я открыл проблему с Oracle:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7043176
Я смог обойти это самостоятельно, написав собственную реализацию AbstractPreferences и соответствующую PreferencesFactory. То, что я сделал, было в Windows, чтобы системные настройки записывали в каталог данных приложения, определенный в реестре:
HKLM \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Папки оболочки \ Общие данные приложения
Я использовал Runtime.getRuntime().exec("reg query \""+key+ "\" /v \""+value+"\"")
, чтобы получить это (работает даже с включенным UAC).
Это означает "C: \ ProgramData" в Windows 7 и "C: \ Documents and Settings \ All Users \ Application Data" в XP. Я добавил подкаталог с именем «JavaPreferences» и написал реализацию, в которой в качестве бэкэнда используется файл свойств.
Как примечание, у меня была похожая проблема с системными настройками в Linux, потому что установщик для JRE не запускался пользователем root, поэтому у меня не было доступа к /etc/.java. В итоге мы выбрали другой пользовательский каталог и предоставили для этого разрешения.