Что творится
PropertyConfigurator.configure(String) загружает и читает файл из файловой системы. Ваш файл свойств находится в каталоге проекта, который будет текущим рабочим каталогом при запуске из eclipse.
После того, как вы упаковали все в банку и развернули ее, в банку помещаются только файлы классов и ресурсы. Ресурсы — это файлы, отличные от Java, которые находятся в вашем исходном дереве.
После того, как вы скопировали файл jar на другой компьютер, файла свойств больше нет.
Решения
Поскольку ваш файл свойств не является ресурсом, вам нужно будет переместить его отдельно: поместите его копию в файловую систему (чтобы ее можно было редактировать, обновлять и т. д.), в ваш текущий рабочий каталог вашего целевого хоста/ среда выполнения.
Рассмотрите возможность размещения его в какой-нибудь общей области файловой системы: например, в /tmp/log4j.properties или ~/.myproject/log4j.properties. Соответственно, ваш код должен быть скорректирован для его поиска.
Альтернатива
Скопируйте файл свойств в корень исходного дерева (по умолчанию /src). Затем его следует упаковать в банку. Загрузите данные в файл jar в качестве ресурса: PropertyConfigurator.configure(getClass().getResourceAsStream()).
В этом случае вы не можете просто отредактировать файл, чтобы настроить параметры ведения журнала.
Много раз будет написана логика, чтобы определить, находится ли файл свойств в файловой системе, и если нет, то загрузить значение по умолчанию из jar с помощью этого механизма.
person
Richard Sitze
schedule
12.08.2012