Где хранить настройки в приложении Java? - PullRequest
1 голос
/ 21 февраля 2011

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

  • кросс-платформенный
  • работает из jar и из«нормальный» вызов

Я потратил много времени на поиски в Google и экспериментировал с получением пути кодовой базы через классы X.class.getProtectionDomain().getCodeSource().getLocation() и java.util.pref.Preferences, но возвращаемые значения давали иногда разные результаты, возвращали ноль илипросто "/" в качестве пути.

"Кроссплатформенность" довольно сложно определить.Решение под названием «наилучшая практика для каждой платформы» будет нелегко достичь.Различие между пользовательскими и общими данными было бы разумным.

Ответы [ 2 ]

9 голосов
/ 21 февраля 2011

java.util.prefs.Preferences - правильный способ сделать это. Он отлично работает (я использовал его в настольном приложении без проблем). Это кроссплатформенный и доступен без каких-либо дополнительных банок. Он также различает пользовательские и глобальные данные. Возможно, пролить свет на ваши конкретные проблемы с ним (или задать другой вопрос)

Конечно, вы также можете использовать java.util.Properties и хранить файлы в System.getProperty("user.dir").

0 голосов
/ 21 февраля 2011

System.getProperty("user.dir") возвращает путь к каталогу пользователя для большинства современных систем.

...