getResourceAsStream возвращает ноль при чтении файла свойств - PullRequest
0 голосов
/ 02 июня 2018

Я хочу загрузить файл application.properties из папки ресурсов maven, но getResourceAsStream возвращает null .вот мой код:

static {
    Properties props = new Properties(); 
    InputStream in = Configuration.class.getResourceAsStream("application.properties");
    props.load(in);
}

, но InputStream равен null .Класс Configuration находится в пакете org.elasticsearch.utils, а application.properties - в src/main/resources.Что случилось?

Ответы [ 4 ]

0 голосов
/ 02 июня 2018

Это то, что я пробовал и работаю: enter image description here

@ Ответ Джири также верен.

PS: "/config.properties" также работает в моем примере,Но если это было внутри класса ElasticTest, то вы должны использовать просто "config.properties".

0 голосов
/ 02 июня 2018

вам нужно либо добавить / в начале строки местоположения rsource, либо переместить ее в соответствии со структурой пакета или использовать загрузчик классов, а не класс.

При поиске ресурса через классПредполагается, что структура каталогов ресурсов отражает структуру вашего класса.

, поэтому ваш код ищет ресурс в каталоге src / main / resources / org / эластичный ...

0 голосов
/ 02 июня 2018
  1. Если файл «application.properties» находится в «src / main / resources», используйте полный путь (в смысле загрузчика классов):

    getResourceAsStream ("/ application.properties ")

  2. Если вы переместите свой файл в тот же пакет, что и ваш класс, вы можете использовать относительный путь:

    getResourceAsStream (" application.properties ")

  3. Если вы переместите свой файл в те же другие пакеты, используйте полный путь:

    getResourceAsStream ("/ my / package / name / application.properties")

0 голосов
/ 02 июня 2018

Вы пытаетесь прочитать ресурс classpath относительно класса Configuration.

  • Если вы хотите сделать это, ресурс должен находиться по тому же относительному пути, то есть вашему файлу свойств.должно быть в src/main/resources/org/elasticsearch/utils.
  • Или вместо этого вы можете использовать абсолютный путь: /application.properties.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...