帶入?yún)?shù)-Dspring.profiles.active=prod運(yùn)行jar包報(bào)錯(cuò)
我的當(dāng)前目錄是target下面
1、當(dāng)我這樣寫的時(shí)候:【java -jar -Dspring.profiles.active=prod .\luckymoney-0.0.1-SNAPSHOT.jar】;報(bào)錯(cuò):【Error: Unable to access jarfile .profiles.active=prod】
2、如果我這樣寫【java -jar? .\luckymoney-0.0.1-SNAPSHOT.jar?-Dspring.profiles.active=prod】,可以成功運(yùn)行,但是依舊使用dev的配置
3、如果我這樣寫【java -jar? .\luckymoney-0.0.1-SNAPSHOT.jar?--spring.profiles.active=prod】,才是成功運(yùn)行
請(qǐng)教一下為什么會(huì)這樣,我是在windows的powershell上輸入的命令,其次我的java是1.8,spring-boot是2.1.3.RELEAS
2020-07-16
以下內(nèi)容僅代表個(gè)人見解如有不對(duì)請(qǐng)指出
當(dāng)我們使用maven進(jìn)行項(xiàng)目打包(mvn clean package)的時(shí)候會(huì)在當(dāng)前目錄下的target文件夾下生成可執(zhí)行的jar文件。通常情況下我會(huì)將其copy出來放在一個(gè)待測(cè)試的文件夾下面(文件夾名稱可自定義)接下來就是使用java -jar 命令啟動(dòng)了。
值得注意的是:在你的項(xiàng)目中存在多個(gè)配置文件的時(shí)候。例如:application.yml、application-dev.yml、application-prod.yml、或者其他的配置(application-test.yml)。我們將整個(gè)項(xiàng)目打包成可執(zhí)行的jar文件。以上的配置項(xiàng)是包涵在jar內(nèi)部的。這個(gè)時(shí)候,若是applicaton.yml中并沒有指定運(yùn)行時(shí)的文件。比如沒有加入如下配置
spring:
? profiles:
? ? active: 配置文件名后綴(例如:dev 、prod、test)
這個(gè)可執(zhí)行的jar是默認(rèn)加載 application.yml這個(gè)配置文件的。此時(shí)若是想讓其加載我們的 dev、prod、test就需要在 使用這個(gè)命令? ?java -jar -Dspring.profiles.active=prod 可執(zhí)行jar
對(duì)于你們說的不好用,我沒出現(xiàn)過。至于在后面加上 --spring.profiles.active=prod 方式也是可以的
在前面使用? -D名稱=值 ,是設(shè)置系統(tǒng)屬性 后面的 -- 是springboot的啟動(dòng)方式
2020-06-17
我也遇到同樣問題:【java -jar? .\luckymoney-0.0.1-SNAPSHOT.jar?--spring.profiles.active=prod】,才是成功運(yùn)行。同問
2020-05-01
java -jar -Dspring.profiles.active=prod luckmoney-0.0.1-SNAPSHOT.jar