黑豹程序员-读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,这样第一种方式运行时就会无法读取目录下文件而报错,改成第二种方式即可。

相关推荐
海兰6 分钟前
Elastic Stack 9.3.0 日志探索
java·服务器·前端
invicinble9 分钟前
centos7系统安装jdk
java·开发语言
lifallen29 分钟前
笛卡尔树 (Cartesian Tree)
java·数据结构·算法
不想看见40444 分钟前
N-Queens -- 回溯法 -- 力扣101算法题解笔记
java·数据结构·算法
MX_93591 小时前
Spring组件扫描原理解析
java·后端·spring
让我上个超影吧1 小时前
天机学堂——领取优惠券优化
java
输出输入1 小时前
Java Swing和JavaFX用哪个好
java·前端
星火开发设计1 小时前
C++ 异常处理:try-catch-throw 的基本用法
java·开发语言·jvm·c++·学习·知识·对象
没有bug.的程序员1 小时前
分布式配置深潜:Spring Cloud Config 与 Git 集成内核、版本回滚机制与多环境治理实战指南
java·分布式·git·spring cloud·分布式配置·版本回滚
好家伙VCC1 小时前
# 发散创新:基于ARCore的实时3D物体识别与交互开发实战 在增强现实(
java·python·3d·ar·交互