当前位置:网站首页>Jar包启动通过ClassPathResource获取不到文件路径问题
Jar包启动通过ClassPathResource获取不到文件路径问题
2022-08-02 20:26:00 【DanceDonkey】
项目目录结构
maven项目resources目录也是会被编译到classpath下的。
ClassPathResource resource = new ClassPathResource("/map/map.properties");
InputStream inputStream = resource.getInputStream();
System.out.println("inputStream.available() = " + inputStream.available());
System.out.println("resource.getFile().getAbsolutePath() = " + resource.getFile().getAbsolutePath());
如果是使用idea进行本地开发时,是可以获取到classpath下的资源的路径的,因为是读取的磁盘上的真正的那个文件。
但是如果将项目打包成一个jar包后,再获取map.properties是获取不到的,对于操作系统来说最多只能读取到jar包,而不能再继续读取jar包里面的文件了,如果继续读取,只能交给jvm去读了,此时能读取到二进制流,而不能获取到路径。可通过以下几种方式获取classpath下的资源。
ClassPathResource classPathResource = new ClassPathResource("/map/map.properties");
InputStream cis = classPathResource.getInputStream();
//获取classpath下第一个/map/map.properties,这个根据jar包的加载先后顺序有关
InputStream ris = ClassPathResource.class.getClassLoader().getResourceAsStream("/map/map.properties");
//这个是获取classpath下所有的map/map.properties,在jvm运行时,所有jar都相当于是一个classpath
Enumeration<URL> resources = ClassPathResource.class.getClassLoader().getResources("/map/map.properties");
边栏推荐
猜你喜欢
Triacetin是什么化学材料
【手撕AHB-APB Bridge】~ AMBA总线 之 APB
.NET性能优化-你应该为集合类型设置初始大小
广东省数字经济发展指引 1.0之建成数据安全保障体系
go——垃圾回收机制(GC)
J9 Digital Currency Theory: Identifying Web3's New Scarcity: Open Source Developers
ssdp协议搜索GB28181设备
开关、电机、断路器、电热偶、电表接线图大全
你是几星测试/开发程序员?技术型选手王大拿......
Li Mu hands-on deep learning V2-BERT pre-training and code implementation
随机推荐
Li Mu hands-on deep learning V2-BERT pre-training and code implementation
Linphone 被叫方如何解析来电SIP消息中的自定义头消息
二丙二醇甲醚醋酸酯
MSTP与STP
Informatics Olympiad All-in-One (1260: [Example 9.4] Intercepting Missiles (Noip1999))
C# Barrier class
Qt提升自定义控件,找不到头文件
Golang source code analysis: juju/ratelimit
Thread线程类基本使用(下)
LM小型可编程控制器软件(基于CoDeSys)笔记二十五:plc的数据存储区(数字量输入通道部分)
HCIP--路由策略实验
Informatics Olympiad All-in-One (1259: [Example 9.3] Find the longest non-descending sequence)
PLC工作原理动画
引用类型 ,值类型 ,小坑。
C# Monitor class
.NET如何快速比较两个byte数组是否相等
Triacetin是什么化学材料
"Weekly Translate Go" This time we have something different!-- "How to Code in Go" series launched
如何成为一名正义黑客?你应该学习什么?
【SLAM】DM-VIO(ros版)安装和论文解读