当前位置:网站首页>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");
边栏推荐
- vscode如何能将输出从OUTPUT改为TERMINAL或者DebugConsole
- Xcode13.1运行工程报错fatal error: ‘IFlyMSC/IFly.h‘ file not found的问题
- 框架设计:PC 端单页多页框架如何设计与落地
- 一款免费的容器安全 SaaS 平台使用记录
- 美国爱荷华州立大学| Improving Distantly Supervised Relation Extraction by Natural Language Inference(通过自然语言推理改进远程监督关系提取)
- C语言中变量在内存中的保存与访问
- 实现fashion_minst服装图像分类
- js如何获取浏览器缩放比例
- 引用类型 ,值类型 ,小坑。
- STP生成树协议
猜你喜欢

Qt提升自定义控件,找不到头文件

go——内存分配机制

"Weekly Translate Go" This time we have something different!-- "How to Code in Go" series launched

Day35 LeetCode

李沐动手学深度学习V2-BERT预训练和代码实现

Helm基础知识

Thread线程类基本使用(上)

Flink Yarn Per Job - 创建启动Dispatcher RM JobManager

vscode如何能将输出从OUTPUT改为TERMINAL或者DebugConsole
The time series database has been developed for 5 years. What problem does it need to solve?
随机推荐
信息学奥赛一本通(1259:【例9.3】求最长不下降序列)
Informatics orsay a tong (1258: 【 9.2 】 digital pyramid)
golang 源码分析:juju/ratelimit
线程安全(上)
J9 Digital Currency Theory: Identifying Web3's New Scarcity: Open Source Developers
The time series database has been developed for 5 years. What problem does it need to solve?
即时通讯开发移动端网络短连接的优化手段
Wintun:一款惊艳的 WireGuard 虚拟网卡接口驱动
Golang source code analysis: time/rate
[21 Days Learning Challenge] Bubble Sort and Insertion Sort
Async的线程池使用的哪个?
How the sensor works
【实战 已完结】WPF开发自动化生产管理平台
浅议.NET遗留应用改造
How to use windbg check c # a thread stack size?
Day35 LeetCode
LeetCode 622 设计循环队列[数组 队列] HERODING的LeetCode之路
Fiddle设置接口数据用指定工具查看;Sublime Text设置json数据格式化转换
LM小型可编程控制器软件(基于CoDeSys)笔记二十五:plc的数据存储区(数字量输入通道部分)
成为黑客不得不学的语言,看完觉得你们还可吗?