应用程序.属性外部 jar 文件如何

2022-09-02 12:13:28

spring-boot-reference 中所述:

在应用程序类路径上(例如,在 jar 中),您可以有一个 application.properties,它为 name 提供了一个合理的默认属性值。在新环境中运行时,可以在 jar 外部提供一个应用程序属性,该属性将覆盖名称

我将一个重复的 application.properties 与 jar 文件放在同一路径上,但是当运行应用程序时:

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

name 值不会被覆盖,它仍然引用 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

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


答案 1

它不起作用,因为您正在尝试从另一个文件夹启动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

答案 2

你拼写为 ,如果你拼写正确,应该有效。configconig


推荐