获取 & 解析 jar 包运行路径文件内容

这篇博客介绍了如何在Java项目中处理一次性的小型定时任务,这些任务不需要长期维护,但需要每日自动触发。文章提到,可以通过常规的jar包结合定时调度来实现。对于包含敏感信息如appKey的配置,建议存放在外部配置文件中,并在运行时动态加载。文中提供了两种读取配置文件的方法:手动解析和使用SpringBoot框架。手动解析时,通过`System.getProperty(user.dir)`获取jar运行路径并读取配置文件;使用SpringBoot框架时,通过设置系统变量并利用`@PropertySource`注解来解析文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中会遇到一些 小需求,不需要项目一直持续提供功能,却需要每天定时触发一次,这种任务,只要常规 jar 包 + 定时调度就可以处理了。针对这种项目,一些敏感信息,比如,appKey 等信息,因为可能会变化,又不经常修改的,可以放置到配置文件中,从外部加载

获取路径

  • 获取 jar 包运行路径

// System.getProperty("user.dir") 获取当前 jar 包运行路径
String jarPath = System.getProperty("user.dir");

解析文件内容

  1. 手动解析
  2. 使用 SpringBoot 框架来解析

手动解析

try {
    final InputStream inputStream = new File(configPath).toURI().toURL().openStream();
    final Properties properties = new Properties();
    properties.load(inputStream);
    inputStream.close();
    log.info("properties-size: {}", properties.size());
    return properties;
} catch (IOException e) {
    log.error("读取配置文件异常: path:{}, errorMessage:{}, e:{}", configPath, e.getMessage(), e);
    System.exit(-1);
}

使用 SpringBoot 框架来解析

  1. 该方式需要使用 springboot 框架
  2. 外部配置文件必须是 properties 类型,不能是 yaml 类型
  3. 该方式是运行时获取运行路径,然后将配置文件路径设置在系统变量里,交给 spring 的 PropertySource 去解析
设置解析路径
public static void main(String[] args) {
//  加配置用以解析 指定的配置文件
    final String chenfu = String.format("%s%s%s%s%s", System.getProperty("user.dir"), File.separator, "config", File.separator, "chenfu.properties");
    System.setProperty("chenfu", chenfu);
    new SpringApplicationBuilder(ChenfuApplication.class).web(WebApplicationType.NONE).run(args);
}
解析参数配置类
@Component
@ConfigurationProperties(prefix = "chenfu", ignoreInvalidFields = true)
@PropertySource(value = "file:${chenfu}", encoding = "UTF-8")
public class ChenfuApplication {
//	配置项
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值