服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - springboot 运行 jar 包读取外部配置文件的问题

springboot 运行 jar 包读取外部配置文件的问题

2021-10-21 10:39m17193095294 Java教程

这篇文章主要介绍了springboot 运行 jar 包读取外部配置文件,本文主要描述linux系统执行jar包读取jar包同级目录的外部配置文件,主要分为两种方法,每种方法通过实例代码介绍的非常详细,需要的朋友可以参考下

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

confData=data

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//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)执行jar包

java -jar jarNanexxx

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

confData=data

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//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)执行jar包

java -jar jarNanexxx

到此这篇关于springboot 运行 jar 包读取外部配置文件的文章就介绍到这了,更多相关springboot 配置文件内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/teacher11/archive/2021/07/23/15048485.html

延伸 · 阅读

精彩推荐