java啟動jar包引入外部配置文件方式
前提
打出來的jar中已經包含了各個application-xxx.yml文件,jar所在位置也引入了外部的application-test.yml。
目的:運行時,希望使用的時外部 application-test.yml 文件。
使用了以下命令:
java -Xms1024m -Xmx2048m -jar /home/test/my-test-app-0.0.1.jar --spring.config.location=./application-test.yml --logging.config=./logback.xml -server my-test-app &
可以啟動,但是,使用的時jar包里面的application-test.yml配置,而不是外部的application-test.yml文件。
解決問題
使用-D命令設置系統(tǒng)屬性

java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml /home/test/my-test-app-0.0.1.jar --logging.config=./logback.xml -server my-test-app &
或者:
java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml -Dlogging.config=./logback.xml /home/test/my-test-app-0.0.1.jar -server my-test-app &
啟動時,如果直接在jar包所在的目錄啟動, 例如java -jar的方式, 那么會自動加載config或者根目錄下的配置文件(properties, yml)
如果使用腳本的啟動方式, 那么可能你的執(zhí)行腳本路徑和腳本所在路徑不在同一目錄, 那么這個時候可以使用絕對路徑來配置, 例如:
java -jar ./test.jar --spring.config.additional-location=../config/ --spring.profiles.active=dev
- spring.config.location:會覆蓋內部配置參數(shù)
- spring.config.additional-location:會和內部配置參數(shù)互補
問題
在測試過程種,如果引入的application文件包含spring.profile 屬性,會導致引用失敗,所以需要刪掉這個文件,如果需要使用spring.profile 則需要在啟動的腳本中加入這個配置項:
java -Xms1024m -Xmx2048m -jar -Dspring.config.location=./application-test.yml -Dlogging.config=./logback.xml /home/test/my-test-app-0.0.1.jar --spring.profile=test -server my-test-app &
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解spring boot 以jar的方式啟動常用shell腳本
本篇文章主要介紹了詳解spring boot 以jar的方式啟動常用shell腳本,具有一定的參考價值,有興趣的可以了解一下2017-09-09
Springboot+TCP監(jiān)聽服務器搭建過程圖解
這篇文章主要介紹了Springboot+TCP監(jiān)聽服務器搭建過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
struts1登錄示例代碼_動力節(jié)點Java學院整理
這篇文章主要介紹了struts1登錄示例代碼,需要的朋友可以參考下2017-08-08
Springboot 整合 Java DL4J 實現(xiàn)智能客服功能
本文主要介紹了如何使用SpringBoot整合JavaDeeplearning4j來構建一個智能客服系統(tǒng),詳細探討了神經網絡選擇、數(shù)據(jù)集格式、技術介紹、Maven依賴、代碼示例等內容,為構建高效、便捷、個性化的客戶服務提供了理論支持和實踐指導2024-10-10
實踐講解SpringBoot自定義初始化Bean+HashMap優(yōu)化策略模式
本篇講解了SpringBoot自定義初始化Bean+HashMap優(yōu)化策略模式,通過實踐的方式更通俗易懂,對此不了解的同學跟著小編往下看吧2021-09-09

