在您的应用程序类路径上(例如在您的jar中),您可以拥有一个 application.properties,提供合理的默认属性值 为了名字。在新环境中运行时,是application.properties 可以在你的jar之外提供覆盖名称
我将重复的application.properties与覆盖的名称放在与jar文件相同的路径上,但是在运行应用程序时:
java -jar target/myproject-0.0.1-SNAPSHOT.jar
名称值未被覆盖,它仍然引用jar文件中的application.properties内部的名称。我也尝试过:
java -Dspring.config.location=/target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar
但它不起作用,请帮助。
修改
当我将当前目录更改为target
并运行它时,它可以正常工作。
java -jar myproject-0.0.1-SNAPSHOT.jar
为什么呢?为什么不能在路径之外运行呢?
答案 0 :(得分:19)
它不起作用,因为你试图从另一个文件夹启动jar:spring boot查找相对于你当前文件夹的文件/文件夹。
你可以:
1)相对于您当前的文件夹,在application.properties
或./
中复制./config/
。
2)或指定-Dspring.config.location
:
$ java -Dspring.config.location=target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar
答案 1 :(得分:2)
您将config
拼写为conig
,如果拼写正确,则应该有效。