springboot 運行 jar 包讀取外部配置文件的問題
案例:本文主要描述linux系統(tǒng)執(zhí)行jar包讀取jar包同級目錄的外部配置文件
方法一:相對路徑設(shè)置配置文件
(1)在jar包同級目錄創(chuàng)建配置文件conf.properties并寫入配置數(shù)據(jù):
confData=data
(2)開始寫入自動化測試代碼
//from www.fhadmin.cn public class Test{ public String getData() throws IOException { //讀取配置文件 Properties properties = new Properties(); File file = new File("conf.properties"); FileInputStream fis = new FileInputStream(file); properties.load(fis); fis.close(); //獲取配置文件數(shù)據(jù) String confData = properties.getProperty("confData"); System.out.println(confData); } }
(3)執(zhí)行jar包
java -jar jarNanexxx
方法二:絕對路徑設(shè)置配置文件
解決問題:使用相對路徑的方法在jar包同級目錄手動執(zhí)行jar包時沒有問題,但使用linux系統(tǒng)的crontab文件定時調(diào)度時報錯,原因:因為我們手動執(zhí)行某個腳本時,是在當(dāng)前shell環(huán)境下進行的,程序能找到環(huán)境變量;而系統(tǒng)自動執(zhí)行任務(wù)調(diào)度時,除了默認(rèn)的環(huán)境,是不會加載任何其他環(huán)境變量的。因此就需要在crontab文件中指定任務(wù)運行所需的所有環(huán)境變量,或者在程序中使用絕對路徑。
(1)在jar包同級目錄創(chuàng)建配置文件conf.properties并寫入配置數(shù)據(jù):
confData=data
(2)開始寫入自動化測試代碼
//from www.fhadmin.cn public class Test{ public String getData() throws IOException { //獲取jar包同級目錄 String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); String[] pathSplit = path.split("/"); String jarName = pathSplit[pathSplit.length - 1]; String jarPath = path.replace(jarName, ""); String pathName=jarPath+"minhang.properties"; System.out.println("配置文件路徑:"+jarPath); //讀取配置文件 Properties properties = new Properties(); File file = new File(pathName); FileInputStream fis = new FileInputStream(file); properties.load(fis); fis.close(); //獲取配置文件數(shù)據(jù) String confData = properties.getProperty("confData"); System.out.println(confData); } }
(3)執(zhí)行jar包
java -jar jarNanexxx
到此這篇關(guān)于springboot 運行 jar 包讀取外部配置文件的文章就介紹到這了,更多相關(guān)springboot 配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Jacoco獲取 Java 程序的代碼執(zhí)行覆蓋率的步驟詳解
這篇文章主要介紹了使用Jacoco獲取 Java 程序的代碼執(zhí)行覆蓋率的步驟詳解,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03springboot整合ACTable生成數(shù)據(jù)庫表方式
ACTable是一個增強Mybatis的功能框架,支持SpringBoot和SpringMvc項目,通過配置model注解即可創(chuàng)建、修改表結(jié)構(gòu),并實現(xiàn)了共通的CRUD功能2025-02-02Spring Boot集成starrocks快速入門Demo(適用場景)
StarRocks 是新一代極速全場景 MPP (Massively Parallel Processing) 數(shù)據(jù)庫,StarRocks 的愿景是能夠讓用戶的數(shù)據(jù)分析變得更加簡單和敏捷,這篇文章主要介紹了Spring Boot集成starrocks快速入門Demo,需要的朋友可以參考下2024-08-08java Swing組件setBounds()簡單用法實例分析
這篇文章主要介紹了java Swing組件setBounds()簡單用法,結(jié)合實例形式分析了Swing組件setBounds()方法的功能與簡單使用方法,需要的朋友可以參考下2017-11-11MyBatis實現(xiàn)動態(tài)SQL更新的代碼示例
本文博小編將帶領(lǐng)大家學(xué)習(xí)如何利用 MyBatis 攔截器機制來優(yōu)雅的實現(xiàn)這個需求,文中通過代碼示例介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下2023-07-07