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