Java 读取jar内包资源文件和读取jar包外资源文件

2023-11-16

Java 读取jar包内资源文件:

           # 读取jar 包内资源文件application.properties
           InputStream appPropertiesInputStream = ApplicationPropertiesHolder.class
                    .getClassLoader().getResourceAsStream("application.properties");

            if (appPropertiesInputStream != null) {
                try {
                    Properties appProperties = new Properties();
                    appProperties.load(appPropertiesInputStream);
                    if (logger.isDebugEnabled()) {
                        logger.debug("application.properties:");
                        for (Entry<Object, Object> entry : appProperties.entrySet()) {
                            logger.debug("*" + entry.getKey() + "=" + entry.getValue());
                        }
                    }
                    for (Entry<Object, Object> entry : appProperties.entrySet()) {
                        defaultProperties.put(entry.getKey(), entry.getValue());
                    }
                } catch (IOException e) {
                    logger.error("Load application.properties error", e);
                } finally {
                    if (appPropertiesInputStream != null) {
                        try {
                            appPropertiesInputStream.close();
                            appPropertiesInputStream = null;
                        } catch (IOException e) {
                            logger.error("InputStream Colse Error:", e);
                        }
                    }
                }
            }

Java 读取jar包外资源文件:

# 读取jar 同级目录的config/application.properties 文件 
String dir =new File(ApplicationPropertiesHolder.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent();
            InputStream appPropertiesInputStream = new FileInputStream(new File(dir+File.separator+"config/application.properties"));

            if (appPropertiesInputStream != null) {
                try {
                    Properties appProperties = new Properties();
                    appProperties.load(appPropertiesInputStream);
                    if (logger.isDebugEnabled()) {
                        logger.debug("application.properties:");
                        for (Entry<Object, Object> entry : appProperties.entrySet()) {
                            logger.debug("*" + entry.getKey() + "=" + entry.getValue());
                        }
                    }
                    for (Entry<Object, Object> entry : appProperties.entrySet()) {
                        defaultProperties.put(entry.getKey(), entry.getValue());
                    }
                } catch (IOException e) {
                    logger.error("Load application.properties error", e);
                } finally {
                    if (appPropertiesInputStream != null) {
                        try {
                            appPropertiesInputStream.close();
                            appPropertiesInputStream = null;
                        } catch (IOException e) {
                            logger.error("InputStream Colse Error:", e);
                        }
                    }
                }
            }

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 读取jar内包资源文件和读取jar包外资源文件 的相关文章

随机推荐

  • 数据分析03——矩阵常用计算方法和函数

    0 前言 数组 计算机领域的概念 矩阵 数学领域的概念 对于Numpy而言 矩阵是数组的分支 1 创建矩阵 字符串创建矩阵 mat1 np matrix 1 2 3 4 列表形式创建矩阵 mat2 np matrix 5 6 7 8 通过数
  • QTextDocument和QTextBlock

    QTextDocument QTextDocument是用于结构化富文本文档的容器 为样式文本和各种类型的文档元素 如列表 表格 框架和图像 提供支持 可以创建它们以在QTextEdit中使用 也可以独立使用 每个文档元素均由关联的格式对象
  • 可视化工具Netron介绍

    Netron是一种用于神经网络 深度学习和机器学习模型的可视化工具 它可以为模型的架构生成具有描述性的可视化 descriptive visualization 源码在 https github com lutzroeder netron
  • Taro安装、启动命令、创建项目、修改端口号以及如何在微信开发者工具内运行

    1 安装Taro开发工具 npm install g tarojs cli 或者yarn global add tarojs cli 使用npm可能会有一些报错的信息 建议使用cnpm安装 2 使用命令创建模板 taro init myAp
  • 教你如何基于Redis来实现高性能延时消息队列!

    最近在倒腾自建博客后端系统 需要用到延时任务的功能 但手头只有一套MySQL和Redis 如果搞一套MQ成本有点大 于是想着用redis实现延时消息队列 有些场景用数据库的定时扫表也能简单实现延时消息的功能 不过对于我这边的实际场景 比如计
  • C#学习笔记 任务操作

    利用线程 可以方便地进行异步操作 但是线程模型有一个缺点 就是无法处理返回值 要在不同线程之间传递数据比较麻烦 任务则解决了这个问题 完整代码在这里 https github com techstay csharp learning not
  • 流程控制和数组(下)

    文章目录 Java 类 Arrays Java 类 Arrays Java提供的Arrays类里包含的一些statics修饰的方法可以直接操作数组 这个Arrays类里包含了如下的几个static修饰的方法 static修饰的方法可以直接通
  • 【数据挖掘】数据清洗

    数据挖掘 数据清洗 数据挖掘一般流程 数据挖掘一般流程 需求分析 数据挖掘任务分类 1 预测 分类 回归 2 聚类 文档归类 3 关联性分析 购物篮分析 4 异常检测 信用卡欺诈 获取数据 sql linux 爬虫 数据清洗 主要 去重 缺
  • Halcon极坐标变换检测缺陷

    一 原图 二 通过极性变换拉直 三 检测缺陷 This example checks bottle necks for defects First the bottle is detected with basic morphology e
  • ARouter 之注解 @JvmField 和 @Autowired

    文章目录 1 定义 2 使用 3 源码分析 4 为什么 Autowired 要搭配 JvmFiled 同时使用 1 定义 在 Activity 进行数据传递一般都会通过 getIntent putxxx getxxx 方法 在 Fragme
  • 【华为OD机试真题 python】查找重复代码【2022 Q4

    题目描述 查找重复代码 小明负责维护项目下的代码 需要查找出重复代码 用以支撑后续的代码优化 请你帮助小明找出重复的代码 重复代码查找方法 以字符串形式给定两行代码 字符串长度 1 lt length lt 100 由英文字母 数字和空格组
  • s2.ubuntu搭建s3c2440平台arm-linux-gcc交叉编译工具链安装+资源下载

    交叉编译工具包arm linux gcc 3 4 5 glibc 2 3 6 tar bz2 zip 蓝奏云 文件实际后缀是 bz2 下载后去掉 zip后缀 然后放入Ubuntu系统 具体步骤 1 复制交叉编译链的包到Ubuntu中 这里我
  • Spring学习(五):Spring中注入一些细节

    1 字面值 字面值 可用字符串表示的值 可以通过
  • Misc

    我可是黑客 用winehx打开 下拉到最后 moctf e4sy 1ma9e m1sc 假装安全 用kali的binwalk分离 打开记事本 mcfCrflyS1eot eul ld 扫扫出奇迹 用QR Research直接扫 或者用Ste
  • Linux 4G 通信实验

    目录 4G 网络连接简介 高新兴ME3630 4G 模块实验 ME3630 4G 模块简介 ME3630 4G 模块驱动修改 1 Linux内核添加代码 USB设备信息 2 Linux内核添加代码 添加ECM支持程序 3 配置使能Linux
  • 计算机怎么快速查找应用,win10系统如何快速查找应用?win10系统快速查找应用的方法...

    win10电脑经常会安装各种程序应用 因为没有添加到桌面 所以这个时候很难找到 如果一个一个程序查找很浪费时间 有什么快速查找应用的方法 针对此疑问 小编和大家说说win10系统快速查找应用的方法 具体方法如下 1 首先你要找到 开始菜单
  • Vue3+Element-Plus 实现表单中搜索功能 三五

    1 当用户在表单搜索框中 输入要搜索的用户名 点击搜索按钮后 查找到相对应的用户数据 2 实现搜索功能的步骤 2 1 首先 使用v model 指令 将文本输入框的数据与 data 中的数据做双向绑定 2 2 其次 为搜索按钮绑定单击事件
  • Java中Math类中的常用方法

    Java中Math类中的常用方法 代码实例 public class Demo1 Math public static void main String args System out println Math PI System out
  • 使用备份工具mysqldump备份数据库

    MySQL自带的备份工具mysqldump 可以很方便的对MySQL进行备份 通过该命令工具可以将数据库 数据表或全部的库导出为SQL脚本 便于该命令在不同版本的MySQL服务器上使用 例如 当需要升级MySQL服务器时 可以先使用mysq
  • Java 读取jar内包资源文件和读取jar包外资源文件

    Java 读取jar包内资源文件 读取jar 包内资源文件application properties InputStream appPropertiesInputStream ApplicationPropertiesHolder cla