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

相关推荐
茶本无香2 小时前
JDK 21 ZGC分代功能详解:配置、原理及生产环境实践
java·jvm
xxjj998a2 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
wellc3 小时前
Spring Boot 热部署
java·spring boot·后端
金銀銅鐵3 小时前
[Java] 从 class 文件看动态代理
java·后端
C++ 老炮儿的技术栈3 小时前
两个线程对socket 进行读和写,需要加锁吗
java·服务器·网络
萍萍学习3 小时前
蓝桥杯JAVA-4
java·职场和发展·蓝桥杯
顶点多余3 小时前
深度剖析Linux 线程概念
java·linux·jvm
_MyFavorite_3 小时前
JAVA重点基础、进阶知识及易错点总结(8)List 接口(ArrayList、LinkedList、Vector)
java·开发语言·list
第二层皮-合肥3 小时前
基于C#的工业测控软件-依赖库
java·开发语言
openallzzz4 小时前
【面经分享】Java实习
java·开发语言