Вопрос по properties, classloader, java – Как использовать загрузчик классов Java для загрузки файла из пути к классам?

8

Я хочу использовать ClassLoader для загрузки файла свойств для класса Properties. Я упростил приведенный ниже код, чтобы исключить обработку ошибок для целей этого обсуждения:

loader = this.getClass().getClassLoader();
in = loader.getResourceAsStream("theta.properties");
result = new Properties();
result.load(in);

В той же директории, что и этот класс, у меня есть файл «theta.properties». но InputStream всегда нулевой. Я помещаю файл в неправильное место? Я использую eclipse и его набор для создания файлов классов в исходной папке, так что это не должно быть проблемой.

Я не могу найти ничего в JavaDoc, чтобы ClassLoader сообщал мне, какой путь к классу ищется.

Ваш Ответ

3   ответа
-1

Вы можете использовать ResourceBundle

10

ИспользуяgetClass().getClassloader() вы ищете "theta.properties" из корневого каталога пути. Просто используйтеgetClass().getResourceAsStream() чтобы получить ресурс относительно этого класса.

6

Если файл находится в том же каталоге, что и класс, вы должны поставить префикс пакета класса в качестве каталога.

Так что, если ваш пакет:

package com.foo.bar;

Тогда ваш код:

.getResourceAsStream("com/foo/bar/theta.properties");

Похожие вопросы