为了账号安全,请及时绑定邮箱和手机立即绑定

带入参数-Dspring.profiles.active=prod运行jar包报错

我的当前目录是target下面

1、当我这样写的时候:【java -jar -Dspring.profiles.active=prod .\luckymoney-0.0.1-SNAPSHOT.jar】;报错:【Error: Unable to access jarfile .profiles.active=prod】

2、如果我这样写【java -jar  .\luckymoney-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=prod】,可以成功运行,但是依旧使用dev的配置

3、如果我这样写【java -jar  .\luckymoney-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod】,才是成功运行


请教一下为什么会这样,我是在windows的powershell上输入的命令,其次我的java是1.8,spring-boot是2.1.3.RELEAS

正在回答

3 回答

以下内容仅代表个人见解如有不对请指出

当我们使用maven进行项目打包(mvn clean package)的时候会在当前目录下的target文件夹下生成可执行的jar文件。通常情况下我会将其copy出来放在一个待测试的文件夹下面(文件夹名称可自定义)接下来就是使用java -jar 命令启动了。

值得注意的是:在你的项目中存在多个配置文件的时候。例如:application.yml、application-dev.yml、application-prod.yml、或者其他的配置(application-test.yml)。我们将整个项目打包成可执行的jar文件。以上的配置项是包涵在jar内部的。这个时候,若是applicaton.yml中并没有指定运行时的文件。比如没有加入如下配置

spring:

  profiles:

    active: 配置文件名后缀(例如:dev 、prod、test)

这个可执行的jar是默认加载 application.yml这个配置文件的。此时若是想让其加载我们的 dev、prod、test就需要在 使用这个命令   java -jar -Dspring.profiles.active=prod 可执行jar

对于你们说的不好用,我没出现过。至于在后面加上 --spring.profiles.active=prod 方式也是可以的

在前面使用  -D名称=值 ,是设置系统属性 后面的 -- 是springboot的启动方式

1 回复 有任何疑惑可以回复我~

我也遇到同样问题:【java -jar  .\luckymoney-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod】,才是成功运行。同问

0 回复 有任何疑惑可以回复我~

java -jar -Dspring.profiles.active=prod luckmoney-0.0.1-SNAPSHOT.jar


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

带入参数-Dspring.profiles.active=prod运行jar包报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信