application.properties outside jar file how to [duplicate]

China☆狼群 提交于 2019-11-29 02:35:04

问题


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?


回答1:


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



回答2:


You spelt config as conig, should work if you spell it right.



来源:https://stackoverflow.com/questions/39427675/application-properties-outside-jar-file-how-to

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!