2013-07-24 4 views
0

Я пытаюсь реализовать концепцию заполнителя весной, используя netbeans IDE. Я хочу, чтобы файл свойств находился в фиде, где будет развернута моя банка, так что он может быть отредактирован человеком, работающим с файлом jar.Исключение Filenotfound при чтении файла confiration весной

В папке dist содержится файл jar, папка библиотек и поле свойств, содержащие записи, относящиеся к источнику данных.

Я использую ClassPathXmlApplicationContext для чтения файла конфитюра и загрузки в контексте приложения. Мой конфигурационный файл имеет запись как

<bean id="c12" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
     <value>database.properties</value> 
    </property> 
</bean> 

Но я получаю следующее исключение

Caused by: java.io.FileNotFoundException: class path resource [database.properties] cannot be opened because it does not exist 

* EDIT: * Реализованный что isssue находится с пути к классам, Путь к классам src при запуске в IDE и «jar-файле» при запуске jar в командной строке, но в обоих случаях он пропускает файл свойств, который находится в той же папке, что и jar. Помимо указания абсолютного пути с использованием файла: есть ли другой способ встретить относительный путь в контексте приложения

ответ

0

Как указано в сообщении об ошибке, без каких-либо признаков Spring пытается загрузить, если из вашего пути к классам. В вашем случае это означает в вашем JAR.

Если вы хотите загрузить его из файла в файловой системе, вы должны использовать префикс file:. Например, чтобы загрузить его с пути запуска приложения Java:

file:database.properties 

Но я бы рекомендовал установить абсолютный путь:

file:/path/to/database.properties 
0

Чтобы иметь файл database.properties размещенный рядом с вашей баночка вступления в силу, вы должны включить текущий каталог в путь к классам при выполнении программы

Предполагая следующую структуру каталогов:

myfolder 
+- myprog.jar 
+- database.properties 

Ваш код должен быть в состоянии срабатывания database.properties, если программа запускается с помощью следующей команды (с MyFolder в текущей директории)

java -cp . -jar myprog.jar 
+0

Я попытался запустить с помощью Java -cp. -jar myprog.jar, но я все еще получаю FILENotFoundException, заявляя, что fiel не открывается, поскольку он не существует – juan

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