2013-08-08 2 views
0

В main() классе я поставил код:Загрузка файла свойств дает нуль

App.getClass().getClassLoader().getResourceAsStream("Repo-Offer.properties") 

результат является null

Файл свойств находится в:

Project/src/main/resources/properties/Repo-Offer.properties 

Я пытался загрузить таких как:

private Properties getPropertiesFromClasspath(String propFileName) throws IOException { 
    // loading xmlProfileGen.properties from the classpath 
    Properties props = new Properties(); 
    InputStream inputStream = this.getClass().getClassLoader() 
     .getResourceAsStream(propFileName); 

    if (inputStream == null) { 
     throw new FileNotFoundException("property file '" + propFileName 
      + "' not found in the classpath"); 
    } 

    props.load(inputStream); 

    return props; 
} 

, но из-за того, что нуль говорит

Exception in thread "main" java.io.FileNotFoundException: Repo-Offer.properties 

Как использовать файлы свойств из: проекта/SRC/главная/ресурсы/свойства/Repo-Offer.properties в то время как источник находится в

Project/src/main/java/com/... 

? EDIT Это проект Maven.

+0

Попробуйте загрузить 'getResourceAsStream (" properties/Repo-Offer.properties ")'. Это работает? – LaurentG

+0

Действительно ли это проект Maven? Как вы создаете и управляете финальным артефактом? –

+0

@Dave Newton Да, это проект maven. Запустите его из интерфейса GUI Eclipse. – mCs

ответ

1

Предполагая, что вы используете Maven, файл свойств будет помещен в /properties/Repo-Offer.properties, поэтому используйте это как путь к файлу. Посмотрите на target/classes, чтобы проверить правильный путь.

+0

Для: 'System.out.println (App.getClass(). GetClassLoader(). GetResourceAsStream ("/properties/Repo-Offer.properties ")' Я продолжаю получать: null – mCs

+0

@mCs Как насчет без ведущего '/'? –

+0

@Dave Newton Да, это было так. Спасибо, ведущий '/' – mCs

Смежные вопросы