application.properties外面的jar文件怎么样

时间:2016-09-10 15:37:08

标签: java spring-boot classpath

spring-boot-reference中所述:

  

在您的应用程序类路径上(例如在您的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

为什么呢?为什么不能在路径之外运行呢?

2 个答案:

答案 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,如果拼写正确,则应该有效。