SpringBoot打成jar包后无法获取Resources文件

关于SpringBoot项目打成jar包后无法读取到resource下的文件的问题 遇到这个bug,花费了不少时间 报错 java.io.FileNotFoundException: class path resource [fastdfs-client.properties] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/data/FastDFS/fastdfs-1.0-SNAPSHOT.jar!/BOOT-INF/classes!/fas 阅读详情

在前几天项目开发过程中,因为业务需要,自己定义了一个xml文件放到了resources文件夹下,通过Spring的ResourceUtils来获取文件,代码如下:

File testFile = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "test.xml");

后来打成jar包放到测试环境后,这种方式就获取不到文件了,百度了一波,遇到同样问题的小伙伴还挺多,解决方案也五花八门,找了一种比较简便的方式,使用ClassPathResource,如下所示:

ClassPathResource classPathResource = new ClassPathResource("text.xml");
boolean exists = classPathResource.exists(); // 判断文件是否存在
File file = classPathResource.getFile(); // 获取文件对象
InputStream inputStream = classPathResource.getInputStream(); // 获取文件输入流

ClassPathResource也提供了相关的方法,使用也挺方便的。
此种方式不管打没打成jar包都可获取。

springboot打成jar包后读取配置resources下的文件(已解决) spring boot 项目读取自定义配置文件的坑springboot读取配置文件1.以下是亲测成功示例打成jar包放到linux服务器跑2.这个是原来的写法,打成jar包放到linux服务器后找不到配置文件,会报错 springboot读取配置文件 一般情况下我们通过ResourceUtils.getFile(“classpath:config.json”)就可以读取自定义的配置文件 如果是打w... 阅读详情

相关推荐

SpringBoot项目打成jar包后,无法读取resources下的文件

最近在使用aspose将word转PDF并进行签章打印,读取凭证文件时遇到一个问题,凭证文件放在resources目录下,Windows下可正常读取,但是打成jar包部署到Linux服务器上却取不到文件。由此问题引出以下思考: 在本地项目读取文件时 this.getClass().getClassLoader().getResource("").getPath()+fileName this.getClass().getResource("/filename").getPath() 都是可以成功的; 但是j

lmb55的专栏 3115

获取文件路径

开发环境下通过这种方式读取文件 File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "static/excel/userTemplate.xlsx"); 当项目打成jar包放到服务器后就找不到文件了,原来打成jar包后必须以流的方式读取文件: ClassPathResource resour...

365

VTK学习(入门级教程,包括安装和使用)~持续更新中

说明:研究QT+VTK有段时间了,准备把学到的东西分享给大家,这篇博客以VS+QT+VTK为主进行展开学习的。

HXX904的博客 4758

SpringBoot获取src/main/resource路径下的文件

SpringBoot获取src/main/resource路径下的文件 File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX+“static/imgs/aha.png”);

三千炼心的博客 3万+

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8854

Unity3d SECTR 2019 从零开始了解(零)

插件刚下载下来,虽然从Demo里面看了下大致效果,但尝试使用的时候茫无头绪,因此决定一边读文档一边写下笔记。这个笔记会从最基本的名词概述开始一步一步到用法。 除非特别注明,所有内容都不是机翻,而是理解后自己翻译的。 翻译内容: 【零】API REFERENCE MANUAL第一章Documentation Core Concept 【一】 名词概述 CORE CORE是SECTR的核心,一个快速将 Sectors 和 Portals 加入到Unity中的工具,以及完整的源代码,可以构筑独特的功能。 VI

狗蛋在土里瑟瑟发抖 1502

springboot-项目获取resources下文件碰到的问题(classPath下找不到文件和文件名乱码)

简介这篇文章主要介绍了springboot-项目获取resources下文件碰到的问题(classPath下找不到文件和文件名乱码)以及相关的经验技巧,文章约17681字,浏览量498,点赞数7,值得推荐! 项目是spring-boot + spring-cloud 并使用maven 管理依赖。在springboot+maven项目下怎么读取resources下的文件实现文件下载? 怎么获取resources目录下的文件?(相对路径) 方法一: File sourceFile = Resourc..

枯荷听雨 1万+

Test软件:Keysight二次开发_(3).安装与配置开发环境

在开始进行Keysight软件的二次开发之前,首先需要确保您的开发环境已经正确安装和配置。本节将详细介绍如何安装和配置必要的开发工具和依赖项,以便您能够顺利进行开发工作。

2401_87715305的博客 1414

记录ClassPathResource获取不到文件

前两天写自助端单机版系统,获取resource——templete文件夹中的文件。在idea中启动项目是可以获取到的,但是打成Jar包后通过java-jarxxx.jar启动就无法获取到文件。

LiuQjie的博客 7711

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 230

Linux 完全卸载 Neovim 的方法:解决权限问题和清除残留文件

Neovim 没有被完全卸载的原因,可能是因为它是通过非官方方式(如手动编译或二进制包)安装的。对于这种情况,使用apt卸载命令无法删除这些文件。因此,需要手动删除和中的相关文件。建议在安装软件时,尽量使用包管理器(如apt)进行安装,以便以后能够方便地卸载。如果你不太熟悉 Linux 系统,避免手动操作系统目录,除非你非常清楚自己的操作。通过上述方法,你应该能够彻底卸载 Neovim 并重新安装。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 4942

Jar包启动通过ClassPathResource获取不到文件路径问题

但是如果将项目打包成一个jar包后,再获取map.properties是获取不到的,对于操作系统来说最多只能读取到jar包,而不能再继续读取jar包里面的文件了,如果继续读取,只能交给jvm去读了,此时能读取到二进制流,而不能获取到路径。可通过以下几种方式获取classpath下的资源。如果是使用idea进行本地开发时,是可以获取到classpath下的资源的路径的,因为是读取的磁盘上的真正的那个文件。maven项目resources目录也是会被编译到classpath下的。...

qq_43750656的博客 1万+

OpenCV实例(八)车牌字符识别技术(三)汉字识别

相较于数字和英文字符的识别,汽车牌照中的汉字字符识别的难度更大,主要原因有以下4个方面:(1)字符笔画因切分误差导致非笔画或笔画流失。(2)汽车牌照被污染导致字符上出现污垢。(3)采集所得车辆图像分辨率低导致多笔画的汉字较难分辨。(4)车辆图像采集时所受光照影响的差异导致笔画较淡。综合汉字识别时的这些难点来看,很难被直接提取的是字符的局部特征。笔画作为最重要的特征而仅存在于汉字中,这由先验知识可知。一旦捺、横、竖、撇这些笔画特征被提取到,对于汉字字符识别的工作就完成了许多。

小幽余生不加糖 1650

jar包访问resources下资源

须知 1、当项目打成jar包后,无法通过 File file = new File("无论你通过任何途径获取到的resources的路径"); 这种形式访问,因为打成jar包后,jar包是一个整体文件,其中每个文件都是jar包的某段字节码。 2、通过解压缩的形式,我们发现,并不存在resources目录,其中文件放在classes目录下(.java文件,编译后为.class文件也放在此目录下),如下图所示。 解决方法 一、我只需要访问properties文件中的某一配置信息 基于Spri

qq_40304825的博客 2438

【51单片机仿真】基于51单片机设计的多功能电子时钟日历(实时时钟闹钟秒表温度检测)系统__资料编号5

该项目是基于单片机的多功能电子时钟系统,集成了时间显示、闹钟设置、秒表功能以及温度显示等功能。主要硬件包括1602液晶显示屏、DS1302时钟芯片、DS18B20温度传感器和蜂鸣器。系统通过按键进行时间和闹钟的设置,并实时显示当前时间和温度。

嵌入式阿齐Archie 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

解决SpringBoot打成jar包无法加载resources下文件的问题(亲测有效)

SpringBoot打包成jar部署到Linux运行加载不了application.yml文件的解决办法。导入的是Spring的核心包和commons.io包。

你羡慕的生活都是你没熬过的苦。 2551

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringBoot打成jar运行后无法读取resources里的文件

在开发一个word导出、替换内容功能时,因替换内容功能需要一个 word 模版,就把 word_replace_tpl.docx 模版文件放到 resources 下 在开发环境中通过下面的方法能正确读取word_replace_tpl.docx文件,但是打成jar包在 linux下运行后无法找到文件了 File file = ResourceUtils.getFile(ResourceUti...

zhuyu19911016520 3万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

解决Springboot项目打成jar包后获取resources目录下的文件报错的问题

前几天在项目读取resources目录下的文件时碰到一个小坑,明明在本地是可以正常运行的,但是一发到测试环境就报错了,说找不到文件,报错信息是:class path resource [xxxx] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:xxxx.jar!xxxx。看了半天代码感觉没有问题,于是怀疑是打成项目jar包后和原项目存在差异导致的。

fhey的博客 6675

Springboot获取jar包中resources资源目录下的文件

Springboot获取jar包中resources资源目录下的文件

weixin_42585386的博客 9468

springboot打成jar包后读取resources下的文件

1、前言 程序打包为jar部署后测试发现资源文件找不到,查看代码发现使用的是ResourceUtils.getFile(“classpath:data/provinceName.json”)获取的资源文件, 打包为jar包后,会出现FileNotFoundException。 本地资源文件路径: 2、解决办法 原来的代码 @GetMapping("/getPath") publi...

qq_40224400的博客 4455

SpringBoot打成jar包后无法读取resources资源文件里文件路径的问题 cannot be resolved to absolute file path because it does

SpringBoot打成jar包后无法读取resources资源文件 在项目中做了一个支付功能, 需要引入第三方渠道的配置文件config.xml用来初始化文件证书, 将配置文件 config.xml 放到 resources 资源目录下。 本地开发环境下能正常读取该文件, 但是在 Linux 环境下将项目打包成jar后运行会出现如下异常: java.io.FileNotFoundException: class path resource [static/config.xml] cannot be

万事俱备,就差一个程序员了 4392

java 打包后 文件资源文件 jar_解决SpringBoot打成jar运行后无法读取resources里的文件问题...

开发一个word替换功能时,因替换其中的内容功能需要 word 模版,就把 word_replace_tpl.docx 模版文件放到 resources 下在开发环境中通过下面方法能读取word_replace_tpl.docx文件,但是打成jar包在 linux下运行后无法找到文件了File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH...

weixin_42516074的博客 1155

SpringBoot读取resources目录下的文件

最近实验室的项目中遇到一个问题:需要读取SpringBoot项目中resources目录下的文件,现在把我踩过的坑写出来。 需要读取jar包中的resources文件的,第三种方法是可以的,前两个可以直接跳过 SpringBoot项目读取resources目录下的文件,通过查阅资料和以往经验,刚开始采用Java传统的读取文件的方式,发现在IDEA上是可以读取成功的,但是项目打包jar后在服务器上运...

gaoyang8320的博客 6万+
上一篇: SpringCloud构建微服务之Zuul服务网关
下一篇: Java8实战之新特性概述
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值