Что мне нужно, так это хранить информацию, такую как дата первого запуска приложения и несколько настроек, где-то на пользовательской машине. Программа будет распространяться на Windows и Mac OS. Эта информация должна быть разделена между пользователями на одном компьютере... несколько глобальные настройки. В Windows я бы, вероятно, сохранил эту информацию в реестре, не уверен насчет Mac ... Мне бы очень хотелось, чтобы для этого было многоплатформенное решение, в противном случае, пожалуйста, посоветуйте платформы для конкретных платформ.
Как сохранить глобальные настройки настольного приложения Java (многоплатформенного)?
Ответы (3)
используйте java.util.prefs.Preferences
Если вы хотите, чтобы все пользователи на машине использовали одни и те же свойства, используйте Preferences.systemRoot()
(а не Preferences.userRoot()
)
person
Bozho
schedule
12.10.2010
Спасибо за ответ, и это действительно решило бы все мои проблемы, если бы это сработало: D 2 проблемы с использованием настроек: 1) в Windows определенные ключи реестра должны быть уже созданы, чтобы это работало, или вы должны быть администратором, иначе вы получаете много предупреждений, и ничего не сохраняется. Заставить установщик создавать эти ключи? может быть ... много боли ... 2) на Mac systemRoot будет сохраняться на жестком диске, только если пользователь, запускающий программу, является администратором / root. В итоге кажется, что я не могу использовать это решение для нашего продукта, так как оно предназначено для среднего пользователя:/
- person m0s; 13.10.2010
ну, если вы хотите хранить общесистемные свойства, я думаю, быть администратором логично. В противном случае вы сможете использовать
userRoot()
(для каждого пользователя).
- person Bozho; 13.10.2010
Попробуйте класс Preferences
. Он может хранить пользовательские или системные настройки. Похоже, вам нужно использовать системные настройки, поскольку они одинаковы для всех пользователей.
Реализация зависит от системы, для Windows будет использоваться реестр. Насчет Мака не уверен.
person
Qwerky
schedule
12.10.2010
Если превосходное предложение @bozho не соответствует вашим требованиям, вы также можете пойти по пути Apache, используя общую конфигурацию.
person
Riduidel
schedule
12.10.2010
Ну, в таком случае, @willcodejavaforfood +1 за ваш отличный псевдо :-)
- person Riduidel; 12.10.2010