SpringBoot 获得编译后的指定文件和源码指定文件路径

本文详细介绍了在SpringBoot中如何获取相对和绝对路径,特别是在打包成jar或war后如何正确读取资源文件。通过ClassPathResource和ResourceUtils等工具进行操作,并提供了不同操作系统下的路径处理示例。同时,文章末尾分享了相关技术文章链接和Java技术讨论群信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

明白

首先,在你代码开发的过程中,SpringBoot获取相对路径或者绝对路径地址,基本上都是你的源代码的目录文件。

代码编译过后,达成jar或者war,在获取取相对路径或者绝对路径地址时,是你编译后的目录文件,也就是当前运行的jar文件中的文件或者时当前在tomcat中的war文件目录。

下面拿获取resource目录为示例演示。

几种文件路径

源代码中获取Resource文件地址

// 获取Resource文件下的template中的表格模板
String path = "classpath:template/双公示模板新.xlsx";
//使用ResourceUtils获取文件
File file = ResourceUtils.getFile(path);
//获取文件流
FileInputStream fileInputStream = new FileInputStream(file);

这种方式在本地测试是没有问题的,但是打成jar包之后不行。

打成jar包,获取Resource文件地址

ClassPathResource classPathResource = new ClassPathResource("classpath:template/双公示模板新.xlsx");
InputStream pathResourceInputStream = classPathResource.getInputStream();

获取项目中的根绝对路径

Test.getRootPath()

输出的就是:C:\Users\test\Desktop\TongYao

其他的有很多获取路径的方式,抽时间给大家分享,还是本篇文章,如果没有更新请评论留言催促一下。谢谢

有任何问题或建议可以评论留言,如果本篇文章解决了你的问题,请点个大大的赞吧!!!

找了几篇不错的相关参考:
https://blog.csdn.net/zhang_m_h/article/details/123637114
https://blog.csdn.net/weixin_43839145/article/details/123332490

https://blog.csdn.net/baidu_23275675/article/details/82622577
https://blog.csdn.net/baidu_39310713/article/details/119346070
https://blog.csdn.net/zjt11112/article/details/114882160

可以区分不同系统使用不同路径

String filePath = null;
        String os = System.getProperty("os.name");
        System.out.println(os);
        if (os != null && os.toLowerCase().startsWith("windows")) {
            filePath = System.getProperty("user.dir") + File.separator + "src"+ File.separator+"main"+ File.separator+"resources" + File.separator;
        } else if (os != null && os.toLowerCase().startsWith("linux")) {
            filePath = ReportController.class.getClassLoader().getResource("").getPath();
        }
        System.out.println(filePath);

Java技术讨论群

入群二维码:https://store.ityao.cn/api/image/friend/wxq.jpg

本群建立目的,主要交流、讨论Java(不一定Java),巩固基础知识、底层原理,为以后各位面试打基础。
欢迎各位提出相关面试题、算法、技术底层等问题。

在这里插入图片描述

顺便说一下,国内又一款开源软件Wall,搭建特别简单,可以搭建个人照片墙和视频墙,有兴趣可以看下教程:https://blog.csdn.net/u014641168/article/details/129396364

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张童瑶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值