application.properties outside jar file how to

Gibi :

As stated in spring-boot-reference:

On your application classpath (e.g. inside your jar) you can have an application.properties that provides a sensible default property value for name. When running in a new environment, an application.properties can be provided outside of your jar that overrides the name

I place a duplicated application.properties with overridden name on the same path as jar file, however when running the application with:

java -jar target/myproject-0.0.1-SNAPSHOT.jar

The name value is not overridden, it still refers to the one inside application.properties inside jar file. I also tried:

java -Dspring.config.location=/target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar

But it does not work, please help.

Edit

When I change the current directory to target and run it, it works.

java -jar myproject-0.0.1-SNAPSHOT.jar

Why? Why cannot be outside the path and run it?

alexbt :

It doesn't work because you are trying to launch the jar from another folder: spring boot looks for files/folder relative your current folder.

You can:

1) copy application.properties either in ./ or ./config/, relative to your current folder.

2) Or specify -Dspring.config.location:

$ java -Dspring.config.location=target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=449174&siteId=1
Recommended