spring boot 获取jar中,File对象的方法

JAVA Spring Boot 获取 Jar包内文件 File 获取jar包内文件File。 阅读详情

将模板放在resource目录下,调试的时候能正常访问,但是打包成jar的时候访问不到。

解决办法:

其实不是访问不到,是获取File对象的时候无法获取到文件导致的,将文件写入临时目录:

private  File getResourceFile(String filePath) throws IOException {
        System.out.println("==================================");

        String[] split = filePath.split("/");
        String pathFile = System.getProperty("user.dir") + File.separator + split[split.length -1];
        File file = new File(pathFile);

        if(!file.exists()){
            file.createNewFile();
        } else {
            file.delete();
            file.createNewFile();
        }


        ClassPathResource resource = new ClassPathResource(filePath);
        String path = resource.getPath();

        System.out.println(" ==> path:" + path);
        System.out.println(" ==> data:");

        InputStream inputStream = resource.getInputStream();
        FileWriter fileWriter = new FileWriter(file, true);
        for (String line : IOUtils.readLines(inputStream)) {
            System.out.println(line);
            fileWriter.write(line);
        }

        fileWriter.flush();
        if(fileWriter != null){
            fileWriter.close();
        }

        System.out.println("====================================");
        System.out.println("");

        return file;
    }

Spring Boot项目Maven打包全攻略:从Fat Jar到Docker分层构建 在Java应用开发中,依赖管理和打包部署是保障应用可移植性与一致性的核心环节。其原理在于通过构建工具将项目代码与第三方库组织成可独立运行的部署单元。这一技术对于实现持续集成、环境标准化和云原生部署具有关键价值,广泛应用于微服务架构、容器化部署等场景。本文聚焦于Spring Boot项目,深入解析如何使用Maven插件实现高效打包。通过对比Fat Jar、Thin Jar及Docker分层镜像等不同策略,并结合依赖冲突、资源路径等高频问题,提供从基础配置到CI/CD集成的实战指南,帮助开发者构建可靠、高效的部 阅读详情

相关推荐

Maven打包全解析:从Jar包原理到Spring Boot实战

在Java开发中,Jar包作为代码交付的标准格式,其打包方式直接影响应用的部署与运行。理解Jar包的本质——一个包含MANIFEST.MF清单文件的特殊ZIP压缩包,是掌握打包技术的基础。Maven作为主流构建工具,通过其生命周期管理和插件机制,提供了多种打包策略,从仅包含项目代码的“瘦Jar”到集成所有依赖的“Fat Jar”,每种方式都对应不同的应用场景。在工程实践中,合理选择打包方式能有效解决依赖冲突、资源加载等常见问题,提升部署效率。本文聚焦于**Maven打包**和**可执行Jar**这两个核心热

weixin_34101229的博客 350

spring boot作为后端接收前端上传文件遇到的问题

注:仅作为自己学习遇到的一点小问题,记录一下过程 一、环境说明 spring-boot版本:2.1.4.RELEASE JDK:1.8 二、问题描述 1、在使用RequestParam请求时,一直抛出异常:Current request is not a multipart request @RequestParam("file") MultipartFile file 2、在去掉RequestParam,file一直为null, 无法接收上传的文件 三、排查过程 通过在网上寻找一些博

Ss_xuxu的博客 1822

linux上使用tun/tap设备模拟一个虚拟网卡,并将该虚拟网卡连接到新创建的网桥上

tun/tap设备是操作系统内核中的虚拟网络设备,是用软件模拟的网络设备,提供与硬件网络设备完全相同的功能。主要用于用户空间和内核空间传递报文。tun/tap对于硬件网络设备而言,一端连接的是物理网络,一端连接的是网络协议栈。对于tun/tap设备而言,一端连接的是应用程序(通过 字符设备文件),一端连接的是网络协议栈。

糖果墙的博客 6411

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

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

weixin_42585386的博客 9468

从编译到启动:RV1106嵌入式Linux系统构建的效率优化与深度实践

本文深入探讨RV1106嵌入式Linux系统构建的全流程优化策略,重点提升编译速度和驱动加载效率。通过并行编译配置、内核裁剪、驱动加载优化和硬件辅助加速等实践方法,显著缩短系统构建和启动时间,为嵌入式开发提供实用指导。

ttt77的博客 1032

从 Token 到 Agent:一文串起 AI 大模型核心概念

摘要:本文系统解析了现代AI系统的八大核心概念:Token(语言处理的最小单位)、Context(AI的短期记忆)、Prompt(指令接口)、Tool(能力扩展器)、MCP(工具生态协议)、Agent(自主智能体)和AgentSkill(专业技能封装)。文章揭示了这些概念如何共同构成AI从基础语言理解到自主决策的技术脉络,重点阐述了Token对计算成本的影响、Prompt工程的重要性、Tool如何突破AI的能力边界,以及Agent如何通过"感知-规划-执行-反思"循环完成复杂任务。最后指

jundao1997的专栏 250

jar包:读取resources目录下的文件路径

类获取文件流,SpringBoot中所有文件都在jar包中,没有一个实际的路径,因此可以使用以下方式。

Pastthewind的博客 4025

【python三维深度学习】python三维点云从基础到深度学习

从三维点云基础知识到深度学习,将按照以下目录持续进行更新。更新完成的部分可以在三维点云专栏中查看。含数据与python源码。

叶子的博客 2万+

Springboot读取Jar包内文件

情景列举 文件路径分为相对路径和绝对路径; 现实中环境分为maven+Idea集成开发环境、windows运行环境、Linux运行环境; 包的形式有jar包和war包; 下面研究: 在不同环境下,不同包形式,不同路径形式的文件读取方式。(暂时只测试了springboot-jar包) 读取方式采用:普通Java中ClassLoader方式 和 Spring中ResourceUtils/ResourceLoader两种 基本的java中InputStream +

AlgebraFly的博客 7705

SPD-Conv+YOLOv8:空间深度转换卷积赋能小目标检测,从原理到实战的科研级优化指南

从理解SPD-Conv“空间到深度+逐步卷积”的核心设计,到亲手将其嵌入YOLOv8并验证在小目标场景的表现,再到基于此探索属于自己的科研与工程方向——这个过程能让你深刻理解“小目标特征保留”在检测任务中的核心价值。现在就开始行动,相信你会在小目标检测的“细节捕捉”之路上,走出一条属于自己的技术路径。实验通常会证明:嵌入SPD-Conv后,YOLOv8在小目标AP上提升5-8个百分点,mAP50-95提升3-5个百分点,而推理速度仅下降5%以内,充分体现了其“保细节+提精度”的优势。

m0_64661770的博客 163

【深度学习新浪潮】Qwen3.5-397B-A17B 深度解析与工程部署实战:超大MoE模型的推理加速与落地

Qwen3.5-397B-A17B是当前开源社区综合能力最强、部署效率最高的超大模型,其MoE架构彻底解决了“大模型难部署、慢、贵”的痛点。

专注:太空算力、AI infra、异构调度、大模型成本工程 1708

springboot打包完成之后无法读取到resources下的资源文件

File privateKeyFile = ResourceUtils.getFile(“classpath:wx.pfx”); PrivateKey privateKey = getPrivateKey(privateKeyFile , privateKeyPassword); 未打包时都可以获取到根路径和文件,打包后报java.lang.NullPointerException ClassPathResource resource = new ClassPathResource(“wx.pfx”); I

m0_67393295的博客 2412

一根同轴线,真的扛得住 4K 吗? ——从摄像头带宽算起,聊透车载 SerDes 接口选型

如果你记住这三句话,这篇文章就值了:🎯摄像头带宽 = 分辨率 × 位深 × fps × 开销4K RAW 摄像头 ≈ 3.7Gbps,是现实不是理论SerDes 选型,宁可多留 20%,不要刚刚好。

weixin_43199439的博客 193

【JavaEE】Spring Boot 快速上手

本文介绍了使用Spring Boot和Maven开发Java Web应用的基础知识。首先说明了Spring Boot如何简化传统Spring应用的配置流程,随后详细讲解了Maven的核心功能,包括项目构建和依赖管理。文章重点演示了Maven依赖配置方法、依赖传递机制以及如何解决依赖冲突,并介绍了Maven Helper插件的使用。此外,还解释了Maven仓库的工作原理,包括本地仓库配置和中央仓库访问。最后,文章指导读者完成了一个简单的Spring Boot Web项目创建过程,实现"Hello W

REGARD712的博客 2378

【系统分析师】2025年下半年真题:案例分析-答案及详解(回忆版)

Redis相比Memcached在电商高并发场景下具有显著优势:支持持久化(RDB/AOF)、丰富数据结构(如有序集合实现排行榜)、原生支持集群和哨兵模式(高可用性)。布隆过滤器通过位数组和哈希函数预先存储所有合法订单ID,当查询请求到达时快速拦截无效ID(如伪造ID),避免其穿透缓存直接冲击数据库,从而预防缓存击穿问题。

数据知道的博客 5986

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Maven打包全解析:从普通Jar到Spring Boot Fat Jar的实战指南

在Java项目构建与部署中,Jar包是代码交付的核心载体。其打包方式直接决定了应用的部署形态和运行效率。从原理上讲,Maven通过不同的插件机制,实现了多种打包策略:普通Jar仅包含项目编译后的类文件,作为类库供其他项目依赖;可执行Jar(Fat Jar)则通过嵌套或融合技术将项目及其所有依赖打包为一个独立运行单元,实现了环境一致性;而依赖分离式Jar则将业务代码与第三方库分离,优化了容器化部署时的镜像构建效率。这些技术为不同应用场景提供了灵活选择:公共库开发需用普通Jar保证依赖纯净,Spring Boo

weixin_34417183的博客 443

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Spring Boot项目打包外部JAR依赖的3种解决方案与最佳实践

在Java企业级应用开发中,依赖管理是构建可靠软件系统的基石。Maven作为主流的项目构建工具,通过坐标体系从远程仓库自动解析和下载依赖,实现了依赖管理的标准化。Spring Boot的Fat Jar打包机制进一步将应用及其所有依赖封装为单个可执行JAR,简化了部署流程。然而,当项目需要集成第三方厂商SDK、硬件驱动或内部二方库等无法从公共仓库获取的外部JAR时,常规的依赖声明方式会导致打包后ClassNotFoundException。这一技术痛点直接影响项目的可部署性和团队协作效率。针对这一场景,开发者

hideto 448

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java JDK 常用工具命令 javac、jar、java、javaw,替换 .jar 包 class 文件,脚本启停 spring boot Jar 包服务

目录 javac.exe 编译 jar.exe 打包 java.exe 执行 javaw.exe 命令 javac.exe 编译 1、编写的 Java 源文件执行之前都需要使用 javac.exe 命令进行编译,即 *.java 编译成 *.class。 2、javac.exe 在 %JAVA_HOME%/bin 目录下,配置好环境变量后,命令行中可以直接运行。命令行中输入 java...

蚩尤后裔-汪茂雄 4953

在Intellij Idea中Maven构建的Spring Boot项目打jar包

IDE工具:Intellij Idea 2017.1.3,项目管理工具:Maven,框架:Spring Boot  公司一个小项目一个人做,就萌生了用spring boot的想法,自己摸索难免很多弯路,此处对打可执行的jar做一个小计。 失败的尝试:File --> Project Structure --> Project Settings --> Artifacts --...

洋成林 2万+

Spring Boot JAR包部署实战与优化指南

在Java微服务架构中,可执行JAR包作为轻量级部署单元,通过内嵌Servlet容器实现了开箱即用的部署体验。其核心原理在于Spring Boot的自动配置机制和依赖管理,将应用代码与运行时环境打包为单一文件。这种部署方式显著提升了云原生场景下的交付效率,特别适合持续集成/持续部署(CI/CD)流程。通过Maven或Gradle构建工具,开发者可以生成包含所有依赖的可执行JAR,配合JVM参数调优和系统服务集成,能够构建高可用的生产级应用。本文以Spring Boot 3.x为例,详细解析从基础打包配置到高

wangqiaowqo的专栏 661

解决在spring boot打成jar包后读取resource下资源文件抛出 java.io.FileNotFoundException

解决在spring boot打成jar包后读取resource下资源文件抛出 java.io.FileNotFoundException 具体报错如下:file:/data/XXX/xxxx.jar.!/BOOT-INF/classes!/configs/xxxxx.xlsx(No such file or directory), 开发环境spring boot2.15 需求:在resource下需要提供一套excel,world格式供前端下载模板 String file = "static/人员基础信息导

深邃灵魂 5527

boot - spring boot jar 启动过程

boot - spring boot jar 启动过程 目录结构 一般的,一个sprign boot package jar 包之后的 如下,这里以 boot-mvc-0.0.1-SNAPSHOT.jar 为例子 . ├── BOOT-INF │ ├── classes # 当前生成编译生成的 class │ └── lib # 依赖的第三方jar包 目录 ├── META-INF │ ├── MANIFEST.MF # 打包的一些类信息 │ └── maven └─

面朝大海,春暖花开 900

Spring Boot JAR包部署实践与优化指南

JAR包作为Java应用的标准部署格式,通过将应用与嵌入式服务器打包为单一可执行文件,实现了开发与生产环境的一致性。其核心原理基于Spring Boot的约定优于配置理念,配合Maven/Gradle构建工具自动处理依赖关系。这种部署方式特别适合云原生场景,与Docker容器化技术形成完美互补,能够显著提升微服务架构下的交付效率。在实际工程实践中,需要关注JVM参数调优、多环境配置管理以及生产级监控方案,这些都是保障Java应用稳定运行的关键技术点。通过合理配置spring-boot-maven-plugi

weixin_33924312的博客 332

Spring Boot项目Jar包版本升级与架构优化实战指南

在Java企业级开发中,依赖管理和应用打包是构建稳定、高效软件系统的基石。其核心原理在于通过构建工具(如Maven)协调第三方库的版本,并优化部署单元的结构,以解决依赖冲突、安全漏洞和资源浪费等问题。这项技术的价值在于提升应用的稳定性、安全性和部署效率,是微服务架构下保障服务健康运行的关键工程实践。典型的应用场景包括响应安全漏洞紧急升级、为引入新特性进行版本迭代,以及对部署包进行瘦身以优化CI/CD流程。本文聚焦于Spring Boot项目,深入探讨了如何利用Maven BOM进行精细化的依赖版本管理,例如

weixin_34416649的博客 368

new file()的路径为jar包内的文件_spring boot 2.x文件路径映射问题汇总

当我们在运行可执行的java jar包的时候,我们肯定改变不了jar里面的内容,因此文件上传路径就成了我们必须考虑的一点问题,我们不能往直接这个jar包里面写文件,那么只能写在jar包外面,但是写到jar包外面的时候要怎么通过内置的tomcat下载文件呢?springboot给我们提供了一种方式,可以将jar包外部路径映射到jar里面。接下来我们看看如何实现。1、springboot2.0以前:我...

weixin_39957805的博客 1742

Maven打包实战:从基础Jar到Spring Boot可执行包的完整指南

在Java项目构建与部署中,Maven作为核心构建工具,其打包机制是项目交付的关键环节。理解Maven打包原理,有助于解决依赖管理、资源配置和部署运行中的常见问题。通过分析默认的“瘦Jar”机制,可以明确库项目与应用项目在打包目标上的本质区别。掌握可执行Jar包的构建技术,特别是“胖Jar”方案,能确保应用具备独立运行能力,直接提升部署效率。在实际工程中,结合Spring Boot Maven Plugin等现代插件,可以实现依赖嵌套、分层优化等高级特性,有效应对依赖冲突、资源过滤等复杂场景。本文围绕Mav

weixin_34037515的博客 434
上一篇: springboot maven本地jar的引用与打包
下一篇: springboot 打包没有将resource中的文件打入jar
调皮的鑫鑫
博客等级 码龄15年 149粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值