2013-09-06 2 views
1

Какой путь я должен разместить здесь, чтобы загрузить этот файл .properties? Я не могу заставить его загрузить ...Не удалось загрузить файл application.properties

InputStream stream = ProductVersionService.class.getResourceAsStream("/application.p‌​roperties"); 
properties.load(stream); 

enter image description here

+0

Вы ставите правильный путь, предполагая, что 'содержание resources'» добавляются к классам. –

+0

Что у вас есть в пути сборки? –

+0

Удалить косую черту. Кроме того, в моих программах я использую 'Thread.currentThread(). GetContextClassLoader(). GetResourceAsStream', но я не уверен, что это имеет значение. – cesarse

ответ

1

Я мог видеть, вы используете Maven для создания этого проекта, и, следовательно, ваша последняя банка не будет иметь src/main/resource или src/main/java. Все эти каталоги будут удалены, и все содержимое под ним будет добавлено в корень jar и, следовательно, обращение к пути с использованием src/main/* приведет к ошибке. Вы должны использовать

Thread.currentThread().getContextClassLoader().getResourceAsStream("application.properties")

+0

И у нас есть победитель, спасибо! – Webnet

1

Вы должны указать полный путь к файлу свойств, от корня через сам файл: /main/resources/application.properties

+0

Правильно! Но путь должен быть '/ main/resources/application.properties'. Исправьте это, и он будет +1. –

+0

@ brano88 Кроме того, путь может быть различным в зависимости от фазы сборки. Полный ответ должен был бы показать, как подтвердить это (зависит от процесса ввода/сборки). – Loki

+0

@ Loki О, господин. Думаю ты прав. –

0

поскольку ваши properties файлы будут читаться из war пакета, самым простым решением было бы загрузить их в качестве ResourceBundle:

ResourceBundle resourceBundle = ResourceBundle.getBundle("main.resources.application"); 
String prop = resourceBundle.getString("nameofproperty"); 
System.out.println(prop); 
1
Properties prop = new Properties(); 
prop.load(PropertiesUtil.class.getClassLoader().getResourceAsStream("/main/resources/application.properties")); 
0

Нет необходимости разрабатывать что-то обычай.

Если следовать Spring архитектуры вы можете использовать этот класс:

org.springframework.core.io.support.PropertiesLoaderUtils 
Смежные вопросы