Как правильно хранить данные conf приложения на Java?

Где вы храните данные конфигурации специфичный для пользователя и машинно-зависимыйвремя выполнения для приложения J2SE?

(Например, C: \ Users \ USERNAME \ AppData \ Roaming </em> в Windows и / home / имя пользователя в Unix)

Как получить эти места в файловой системе независимым от платформы способом?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
16
0
8 481
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Вы можете посмотреть Пакеты ресурсов.

Для конфигурации, специфичной для пользователя, вы можете записать файл конфигурации в папку, на которую указывает системное свойство user.home. Конечно, будет работать только на этой машине.

Ответ принят как подходящий

Это зависит от вашего типа приложения J2SE:

  • Исполняемый JAR-файл J2SE (очень простой): используйте user.home Системное свойство, чтобы найти домашний каталог. Затем создайте подкаталог (например, PGP, SVN, ... do)
  • Java Web Start предоставляет очень хорошие включенные методы для защиты свойств. Всегда под конкретного пользователя
  • Наконец, Eclipse RCP: у вас есть понятие рабочего пространства (также полученного из user.home) для пользователей и конфигурации (не совсем уверен, как получить доступ к этому сложному в Vista) для широкого использования компьютера

Все эти подходы при осторожном использовании - используйте правильный separatorChar - ОС нейтральна.

В Java есть библиотека специально для этого в java.util.prefs.Preferences.

Preferences userPrefs = Preferences.getUserNodeForPackage(MyClass.class); // Gets user preferences node for MyClass
Preferences systemPrefs = Preferences.getSysteNodeForPackage(MyClass.class); // Gets system preferences node for MyClass
Preferences userPrefsRoot = Preferences.getUserRoot(); // Gets user preferences root node
Preferences systemPrefsRoot = Preferences.getSystemRoot(); // Gets system preferences root node

Я использую это


    String pathFile = null;
    if (OS.contains("win")){
        pathFile = System.getenv("AppData");
    }else{
        pathFile = System.getProperty("user.home");
    }

Я сохраняю настройки своего приложения здесь C: \ Users \ USERNAME \ AppData \ в Windows user.home (/ home / USERNAME) на других платформах

Другие вопросы по теме