执行jar包读取外部配置文件

时间:2025-03-24 08:05:18

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

confData=data

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

public class Test{
    public String getData() throws IOException {
        //读取配置文件
        Properties properties = new Properties();
        File file = new File("");
        FileInputStream fis = new FileInputStream(file);
        (fis);
        ();

        //获取配置文件数据
        String confData = ("confData");
        (confData);
    }
}

(3)执行jar包

java -jar jarNanexxx

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

confData=data

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

public class Test{
    public String getData() throws IOException {
       //获取jar包同级目录
        String path = ().getProtectionDomain().getCodeSource().getLocation().getPath();
        String[] pathSplit = ("/");
        String jarName = pathSplit[ - 1];
        String jarPath = (jarName, "");
        String pathName=jarPath+"";
        ("配置文件路径:"+jarPath);

        //读取配置文件
        Properties properties = new Properties();
        File file = new File(pathName);
        FileInputStream fis = new FileInputStream(file);
        (fis);
        ();

        //获取配置文件数据
        String confData = ("confData");
        (confData);
    }
}

(3)执行jar包

java -jar jarNanexxx