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

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

//java项目www.fhadmin.orgpublic 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.orgpublic 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

 


©著作权归作者所有:来自51CTO博客作者fhspringcloud的原创作品,如需转载,请注明出处,否则将追究法律责任

你的鼓励让我更有动力

赞赏

0人进行了赞赏支持

更多相关文章

  1. 遇到应付你的面试官你怎么办?
  2. 协程相比线程到底好在哪里?
  3. Linux下性能压测之系统参数调优
  4. 基于 Swoft 协程框架的 PHP 微服务治理
  5. Ansible Playbook详解
  6. 我的开源项目——Windows PE和Linux ELF可执行文件解析工具
  7. 关于Cisco Smart Install存在远程命令执行漏洞的情况通报
  8. java线程池模型
  9. 3.2 Ansible Playbooks 高级二

随机推荐

  1. PHP去掉字符串中的“#”
  2. 分享一个生成文件层级树类
  3. PHP中如何使用PDO修改数据?
  4. Linux下查看PHP配置文件php.ini的位置
  5. 基于 Hyperf + RabbitMQ + WebSocket 实
  6. PHP之Category类库 无限分类
  7. PHP == 和 === 区别
  8. PHP之curl_multi并发详解方法
  9. 入阶PHP-FPM
  10. PHP还能开发什么?