黑豹程序员-读properties属性文件本地正常,打包jar后运行出错

读properties属性文件本地正常,打包jar后运行出错

bash 复制代码
java.io.FileNotFoundException:file:\D:\code\xml-load\target\XX.jar!\XXX(文件名、目录名或卷标语法不正确。)

原因是读取方式不正确

当使用Spring Boot将应用打成jar时,需要读取resources目录下配置文件时,通常使用ClassLoader直接读取,通常建议使用这种方式,

按本地文件读取方式读取

bash 复制代码
	private File loadXml () {
        return new File(this.getClass().getResource("/system-menu.xml").getPath());
    }

按jar包资源读取

bash 复制代码
    private InputStream loadXml() {
        return this.getClass().getResourceAsStream("/system-menu.xml");
    }

我们部署时,先把项目打成jar,这样第一种方式运行时就会无法读取目录下文件而报错,改成第二种方式即可。

相关推荐
菜鸟小九33 分钟前
hot100(71-80)
java·数据结构·算法
大傻^33 分钟前
LangChain4j 1.4.0 快速入门:JDK 11+ 基线迁移与首个 AI Service 构建
java·开发语言·人工智能
代码探秘者34 分钟前
【大模型应用】4.分块之六大策略
java·数据结构·后端·python·spring
码喽7号35 分钟前
Springboot学习六:MybatisPlus的多表查询以及分页查询
java·spring boot·学习
那我掉的头发算什么41 分钟前
【博客系统】基于Spring全家桶的博客系统(下)
java·后端·spring·mybatis·开发
不吃香菜学java1 小时前
苍穹外卖-新增菜品需求分析
java·spring boot·spring·tomcat·maven·ssm
xiaohe071 小时前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
java
smile_life_1 小时前
使用idea查看maven依赖
java·maven·intellij-idea
Predestination王瀞潞1 小时前
1. Java SE到底是什么:不仅仅是面向对象
java·开发语言
苏渡苇1 小时前
虚拟线程(Virtual Threads)初体验:10万并发如喝水(JDK 21)
java·高并发·虚拟线程·jdk21·virtual threads