При загрузке Свойств из Класса в пакете com.al.common.email.templates
можно использовать
Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();
(Добавьте всю необходимую обработку исключений).
, Если Ваш класс не находится в том пакете, Вам нужен к aquire 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
на пути к классу.
Используя полный путь (тот, который запускается с '/') означает, что текущий пакет проигнорирован.
Принятие Вашего использования эти Свойства класс, через загрузка метод, и я предполагаю, что Вы используете ClassLoder getResourceAsStream для получения входного потока.
, Как Вы передающий на имя, кажется, что это должно быть в этой форме: /com/al/common/email/templates/foo.properties
Чтобы добавить к ответу Иоахима Зауэра, если вам когда-нибудь понадобится сделать это в статическом контексте, вы можете сделать что-то вроде следующего:
static {
Properties prop = new Properties();
InputStream in = CurrentClassName.class.getResourceAsStream("foo.properties");
prop.load(in);
in.close()
}
(Обработка исключений опущена, как и раньше.)