springboot 运行 jar 包读取外部配置文件的问题
案例:本文主要描述linux系统执行jar包读取jar包同级目录的外部配置文件方法一:相对路径设置配置文件(1)在jar包同级目录创建配置文件conf.properties并写入配置数据:
confData=data
(2)开始写入自动化测试代码
//from www.fhadmin.cnpublic 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)开始写入自动化测试代码
//from www.fhadmin.cnpublic 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 配置文件内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. 基于JavaScript实现贪吃蛇游戏2. 使用IntelliJ IDEA 配置安卓(Android)开发环境的教程详解(新手必看)3. PHP 工程师面试的四个环节4. javascript单张多张图无缝滚动实例代码5. JSR-220:EJB 3.0 最终草案出台6. Spring Boot如何支持嵌入式Servlet容器7. 解析Spring Boot内嵌tomcat关于getServletContext().getRealPath获取得到临时路径的问题8. vue用elementui写form表单时,在label里添加空格操作9. vue 获取到数据但却渲染不到页面上的解决方法10. 基于Spring AOP proxyTargetClass的行为表现总结

网公网安备