Не удалось загрузить файл свойств в Java - PullRequest
1 голос
/ 29 сентября 2011

Я пытаюсь загрузить файл свойств. Файл свойств находится в пути к классу приложения.

 Properties p = new Properties();
 p.load(new FileInputStream("classpath:mail.properties"));
 System.out.println(p.get("hi"));

Теперь я говорю classpath, потому что другой файл с именем x.properties упоминается в XML-файле, как этот

<property name="x">
    <util:properties location="classpath:x.properties" />
</property>

Я поместил мои mail.properties в ту же папку, что и x.properties, но моя Java-программа не может найти его? Есть идеи, что мне не хватает?

Ответы [ 2 ]

6 голосов
/ 29 сентября 2011

То, что какая-то программа , обрабатывающая этот XML-файл, любит синтаксис classpath:x.properties, не означает, что это общепринятый синтаксис в Java !

Если вы предоставите "classpath:x.properties" для FileInputStream, он будет искать файл с именем classpath:x.properties. (Проверьте документацию этого конкретного конструктора.)

Попробуйте указать полный путь к этому файлу. Если файл находится в вашем пути к классам, вы можете использовать что-то вроде

p.load(getClass().getResourceAsStream("mail.properties"));
1 голос
/ 29 сентября 2011

если mail.properties действительно находится на вашем пути к классам, вам повезет, загрузив его через загрузчик классов:

Properties p = new Properties();
InputStream is = getClass().getClassLoader().getResourceAsStream("mail.properties");
p.load(is);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...