案例:本文主要描述linux系统执行jar包读取jar包同级目录的外部配置文件
方法一:相对路径设置配置文件
(1)在jar包同级目录创建配置文件conf.properties并写入配置数据:
confData=https://tazarkount.com/read/data
1
(2)开始写入自动化测试代码
//java项目www.fhadmin.orgpublic 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(); //获取配置文件数据 String confData = https://tazarkount.com/read/properties.getProperty("confData"); System.out.println(confData); }}
(3)执行jar包
java -jar jarNanexxx
方法二:绝对路径设置配置文件
解决问题:使用相对路径的方法在jar包同级目录手动执行jar包时没有问题,但使用linux系统的crontab文件定时调度时报错,原因:因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的 。因此就需要在crontab文件中指定任务运行所需的所有环境变量,或者在程序中使用绝对路径 。
(1)在jar包同级目录创建配置文件conf.properties并写入配置数据:
confData=https://tazarkount.com/read/data
(2)开始写入自动化测试代码
//java项目www.fhadmin.orgpublic 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(); //获取配置文件数据 String confData = https://tazarkount.com/read/properties.getProperty("confData"); System.out.println(confData); }}
(3)执行jar包
【springboot注解有哪些 springboot打jar 包部署时 读取外部配置文件】java -jar jarNanexxx
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
