При загрузке свойств из класса в пакете com.al.common.email.templates
вы можете использовать
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();
(Добавьте всю необходимую обработку исключений).
Если вашего класса нет в этом пакете, вам нужно получить InputStream немного иначе:
InputStream in =
getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");
Относительные пути (без начального символа "/") в getResource()
/ getResourceAsStream()
означают, что поиск ресурса будет выполняться относительно каталога, представляющего пакет, в котором находится класс.
Использование java.lang.String.class.getResource("foo.txt")
будет искать (несуществующий) файл /java/lang/String/foo.txt
в пути к классам.
Использование абсолютного пути (начинающегося с '/') означает, что текущий пакет игнорируется.
Чтобы добавить к ответу Иоахима Зауэра, если вам когда-нибудь понадобится сделать это в статическом контексте, вы можете сделать что-то вроде следующего:
(Обработка исключений опущена, как и раньше.)
источник
resources
папке вmaven
проектеСледующие два случая относятся к загрузке файла свойств из примера класса с именем
TestLoadProperties
.Случай 1. Загрузка файла свойств с помощью
ClassLoader
В этом случае файл свойств должен находиться в
root/src
каталоге для успешной загрузки.Случай 2: загрузка файла свойств без использования
ClassLoader
В этом случае
TestLoadProperties.class
для успешной загрузки файл свойств должен находиться в том же каталоге, что и файл.Примечание:
TestLoadProperties.java
иTestLoadProperties.class
это два разных файла. Первый,.java
файл, обычно находится вsrc/
каталоге проекта , а второй,.class
файл, обычно находится в егоbin/
каталоге.источник
источник
источник
Предполагая, что вы используете класс Properties через его метод загрузки , и я предполагаю, что вы используете ClassLoader getResourceAsStream для получения входного потока.
Как вы передаете имя, кажется, оно должно быть в такой форме:
/com/al/common/email/templates/foo.properties
источник
Мне удалось решить эту проблему с помощью этого звонка
Кроме того, вы должны поместить свой файл something.properties в / src / main / resources
источник
PropertiesUtil
?Никто не упоминает аналогичное, но даже более простое решение, чем приведенное выше, без необходимости иметь дело с пакетом класса. Предполагая, что myfile.properties находится в пути к классам.
наслаждаться
источник
используйте приведенный ниже код:
источник