Как заменить свойства по умолчанию в библиотеке - PullRequest
1 голос
/ 03 января 2012

Я делаю библиотеку со свойствами по умолчанию в файле default.properties.

private static String defPropertyPath = "/database.properties";

Я хочу спросить, можно ли заменить этот файл программой, использующей мою библиотеку.Таким образом, программа определит свойства с тем же именем default.properties, которые заменят свойства из библиотеки.Я создал default.properties в программе, в которой я использую библиотеку, но библиотека все еще загружает свойства из их пакета.

edit: я читаю файл свойств через поток ввода:

  InputStream ins = DbProperties.class.getResourceAsStream(defPropertyPath);
    if (ins == null) {
        logger.error("Can't find properties:" + pathToProperties);
        return;
    }

Редактировать: Структура файла:

DbLibrary.jar
/
/database.properties
/src


MyApplication.jar
/
/database.properties
/src
/lib/DbLibrary.jar

Мое приложение использует DbLibrary.jar и хочет заставить эту библиотеку использовать database.properties из MyApplication, а не из DbLibrary.

Ответы [ 3 ]

1 голос
/ 03 января 2012

Может быть намного понятнее, если ваша библиотека экспортирует некоторый API, который позволяет пользователю вашей библиотеки в любое время вызывать метод init.

public static void init(Properties p) { ... }
0 голосов
/ 03 января 2012

Вам нужно только переопределить файл свойств в этих проектах, которые включают вашу библиотеку.

0 голосов
/ 03 января 2012

Я не уверен, что достаточно информации, чтобы ответить на ваш вопрос, но я собираюсь предположить, что, возможно, вы включили файл «database.properties» в банку с вашим приложением. Если вы это сделали, приложение всегда будет читать файл из фляги, а не из файловой системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...