Как сохранить глобальные настройки настольного приложения Java (многоплатформенного)?

Что мне нужно, так это хранить информацию, такую ​​​​как дата первого запуска приложения и несколько настроек, где-то на пользовательской машине. Программа будет распространяться на Windows и Mac OS. Эта информация должна быть разделена между пользователями на одном компьютере... несколько глобальные настройки. В Windows я бы, вероятно, сохранил эту информацию в реестре, не уверен насчет Mac ... Мне бы очень хотелось, чтобы для этого было многоплатформенное решение, в противном случае, пожалуйста, посоветуйте платформы для конкретных платформ.


person m0s    schedule 12.10.2010    source источник


Ответы (3)


используйте java.util.prefs.Preferences

Если вы хотите, чтобы все пользователи на машине использовали одни и те же свойства, используйте Preferences.systemRoot() (а не Preferences.userRoot())

person Bozho    schedule 12.10.2010
comment
Спасибо за ответ, и это действительно решило бы все мои проблемы, если бы это сработало: D 2 проблемы с использованием настроек: 1) в Windows определенные ключи реестра должны быть уже созданы, чтобы это работало, или вы должны быть администратором, иначе вы получаете много предупреждений, и ничего не сохраняется. Заставить установщик создавать эти ключи? может быть ... много боли ... 2) на Mac systemRoot будет сохраняться на жестком диске, только если пользователь, запускающий программу, является администратором / root. В итоге кажется, что я не могу использовать это решение для нашего продукта, так как оно предназначено для среднего пользователя:/ - person m0s; 13.10.2010
comment
ну, если вы хотите хранить общесистемные свойства, я думаю, быть администратором логично. В противном случае вы сможете использовать userRoot() (для каждого пользователя). - person Bozho; 13.10.2010

Попробуйте класс Preferences. Он может хранить пользовательские или системные настройки. Похоже, вам нужно использовать системные настройки, поскольку они одинаковы для всех пользователей.

Реализация зависит от системы, для Windows будет использоваться реестр. Насчет Мака не уверен.

person Qwerky    schedule 12.10.2010

Если превосходное предложение @bozho не соответствует вашим требованиям, вы также можете пойти по пути Apache, используя общую конфигурацию.

person Riduidel    schedule 12.10.2010
comment
Ну, в таком случае, @willcodejavaforfood +1 за ваш отличный псевдо :-) - person Riduidel; 12.10.2010