Chinaunix首页 | 论坛 | 博客
  • 博客访问: 554345
  • 博文数量: 298
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3077
  • 用 户 组: 普通用户
  • 注册时间: 2019-06-17 10:57
文章分类

全部博文(298)

文章存档

2022年(96)

2021年(201)

2019年(1)

我的朋友

分类: Java

2021-05-29 10:39:27

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

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


点击(此处)折叠或打开


  1. public class Test{
  2.     public String getData() throws IOException {
  3.         //读取配置文件
  4.         Properties properties = new Properties();
  5.         File file = new File("conf.properties");
  6.         FileInputStream fis = new FileInputStream(file);
  7.         properties.load(fis);
  8.         fis.close();

  9.         //获取配置文件数据 java项目www fhadmin org
  10.         String confData = properties.getProperty("confData");
  11.         System.out.println(confData);
  12.     }
  13. }


(3)执行jar包

点击(此处)折叠或打开

  1. java -jar jarNanexxx



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


点击(此处)折叠或打开

  1. confData=data

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

点击(此处)折叠或打开


  1. public class Test{
  2.     public String getData() throws IOException {
  3.        //获取jar包同级目录
  4.         String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
  5.         String[] pathSplit = path.split("/");
  6.         String jarName = pathSplit[pathSplit.length - 1];
  7.         String jarPath = path.replace(jarName, "");
  8.         String pathName=jarPath+"minhang.properties";
  9.         System.out.println("配置文件路径:"+jarPath);

  10.         //读取配置文件 java项目www fhadmin org
  11.         Properties properties = new Properties();
  12.         File file = new File(pathName);
  13.         FileInputStream fis = new FileInputStream(file);
  14.         properties.load(fis);
  15.         fis.close();

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



(3)执行jar包

点击(此处)折叠或打开

  1. java -jar jarNanexxx



阅读(1121) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~