zoukankan      html  css  js  c++  java
  • springboot 打jar 包部署时 读取外部配置文件

    案例:本文主要描述linux系统执行jar包读取jar包同级目录的外部配置文件
    方法一:相对路径设置配置文件
    (1)在jar包同级目录创建配置文件conf.properties并写入配置数据:

    confData=data
    1
    (2)开始写入自动化测试代码

    //java项目www.fhadmin.org
    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();
    
            //获取配置文件数据
            String confData = properties.getProperty("confData");
            System.out.println(confData);
        }
    }
    


    (3)执行jar包

    java -jar jarNanexxx


    方法二:绝对路径设置配置文件
    解决问题:使用相对路径的方法在jar包同级目录手动执行jar包时没有问题,但使用linux系统的crontab文件定时调度时报错,原因:因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量,或者在程序中使用绝对路径。
    (1)在jar包同级目录创建配置文件conf.properties并写入配置数据:

    confData=data


    (2)开始写入自动化测试代码

    //java项目www.fhadmin.org
    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();
    
            //获取配置文件数据
            String confData = properties.getProperty("confData");
            System.out.println(confData);
        }
    }


    (3)执行jar包

    java -jar jarNanexxx
  • 相关阅读:
    九 .Django 管理后台(admin)
    四. 访问权限的使用和设计
    三 .复习python的 ORM 操作
    二 .python基于djago项目登录 ajax基本使用
    一 .python基于djago项目书籍管理
    二十六 .定时器(验证码)和短信(验证码)
    二十六 .ajax登录 认证 验证码(session)
    二十五 .Django---------auth认证组件
    二十四 .Django中间件
    【CF896C】Willem, Chtholly and Seniorious
  • 原文地址:https://www.cnblogs.com/sjingser1/p/14824666.html
Copyright © 2011-2022 走看看