Я наткнулся на это сегодня. Ответ, который вы приняли, совершенно неправильный.
У вас сложилось впечатление, что Java Preferences - это общий инструмент для работы с реестром Windows. Это не. Так уж получилось, что стандартная реализация Preferences на платформе Windows хранит свои данные в реестре Windows.
Реализация в Windows хранит вещи под следующими путями реестра:
Для systemRoot: HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs
Для пользователя Root: HKEY_CURRENT_USER\Software\JavaSoft\Prefs
(примечание: пути реестра немного изменяются, если вы используете 32-битную JRE на 64-битной ОС, но это не имеет ничего общего с Java и всем, что связано с Windows. Код Sun всегда использует вышеуказанные пути.)
Смысл в том, что вы можете, возможно, использовать интерфейс Java Preferences для чтения или изменения значений в реестре Windows, но только ниже вышеупомянутых путей реестра. Причина, по которой я говорю «Может быть» в том, что это именно так, как это происходит в данный момент. Sun / Oracle может в любой момент принять решение не использовать реестр Windows или реестр Windows, но без использования подузлов, то есть хранить все в одной большой XML-строке или чем-то еще. Дело в том, что настройки Java предназначены для того, чтобы оградить вас от этого.
Многие программы Java, использующие настройки Java, предоставляют собственную реализацию (что довольно просто), чтобы избежать реализации Sun по умолчанию, которая использует реестр Windows. В наши дни не каждый может писать в реестр Windows, так что это было довольно неудачное дизайнерское решение со стороны Sun. К счастью, очень легко изменить.