Я создаю банку (с Maven и Spring Boot), которая должна читать внешний файл свойств. Он должен находиться в том же каталоге запущенной банки (или в относительном пути к ней, например ./config.properties
или ./conf/config.properties
.Чтение внешнего файла конфигурации из jar
Сейчас я могу успешно прочитать встроенную банку в каталоге ресурсов, но если я попытаюсь ее прочитать локальная директория InputStream будет null
.
Я попытался добавить локальный реж .
пути к классам (распаковка баночки я могу увидеть его в записи Class-Path), но он не работал.
Это то, что я пробовал:
InputStream in = PropertiesLoader.class.getResourceAsStream("config.properties")
InputStream in = PropertiesLoader.class.getResourceAsStream("./config.properties")
InputStream in = PropertiesLoader.class.getClassLoader().getResourceAsStream("./config.properties")
InputStream in = PropertiesLoader.class.getClass().getResourceAsStream("./config.properties")
В моей pom.xml у меня есть эта запись, чтобы добавить локальный реж к классам:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>bla.bla.Main</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
Я также попытался user.dir
собственности, но без Succes.
Это должно быть «легко», но я совершенно потерян.
cmiiw, вы пытаетесь прочитать файл в том же каталоге с вашей банкой? если да, то я думаю, что 'new FileInputStream (" ./ file_name.txt ")' должно быть достаточно право? –
Вы используете файл 'application.properties' в JAR? Является ли файл 'config.properties' за пределами JAR переопределением? – geoand
@kucing_terbang hm .. У меня есть FileNotFound .. – Enrichman