Home  >  Article  >  Java  >  How does springboot run the jar package to read external configuration files?

How does springboot run the jar package to read external configuration files?

WBOY
WBOYforward
2023-05-21 14:40:063111browse

Method 1: Set the configuration file with a relative path
(1) Create the configuration file conf.properties in the same directory as the jar package and write the configuration data:

confData=data

(2) Start writing the automated test code

//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();

        //获取配置文件数据
        String confData = properties.getProperty("confData");
        System.out.println(confData);
    }
}

(3) Execute the jar package

java -jar jarNanexxx

Method 2: Absolute path setting configuration file
Solution to the problem: There is no problem when using the relative path method to manually execute the jar package in the same level directory of the jar package, but an error occurs when using the crontab file of the Linux system for scheduled scheduling. The reason is: Because when we manually execute a script, we do it in the current shell environment, and the program can find the environment variables; and when the system automatically performs task scheduling, it will not load any other environment variables except the default environment. Therefore, you need to specify all the environment variables required for task running in the crontab file, or use absolute paths in the program.
(1) Create the configuration file conf.properties in the same directory as the jar package and write the configuration data:

confData=data

(2) Start writing Enter the automated test code

//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();

        //获取配置文件数据
        String confData = properties.getProperty("confData");
        System.out.println(confData);
    }
}

(3) Execute the jar package

java -jar jarNanexxx

The above is the detailed content of How does springboot run the jar package to read external configuration files?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete