[坑]Idea Java 项目resources目录资源访问

简介: 最近写些小的 java 项目先用 resources 目录来存放一些资源文件,有些是正式环境的资源如 log4j 等配置,有些是junit测试环境,比如测试用的图片资源等。

最近写些小的 java 项目先用 resources 目录来存放一些资源文件,有些是正式环境的资源如 log4j 等配置,有些是junit测试环境,比如测试用的图片资源等。

如下以测试环境为例,进行说明。

[坑位说明]

正常情况下,本人默认会认为 resources 目录默认为资源目录,目录结构如下图:

img_a86008b4c00091eae5235685409d1993.png
项目目录结构

因此使用如下代码进行默认访问:

      File file = new File("1.png");
      ...

但这时候不能正常访问到该文件,因此只能另寻它法。

[坑位分析]

因此尝试了

      // 下面位置在 D:\workspace\project1\out\test\classes
      File file = new File(MainTest.class.getResource("/").getPath());
      // 下面位置在 D:\workspace\project1\out\test\classes
      File file1 = new File(MainTest.class.getClassLoader().getResource(".").getPath());
      // 下面位置为空
      File file2 = new File(MainTest.class.getClassLoader().getResource("/").getPath());
      // 下面位置在 D:\workspace\project1\out\test\resources\1.png
      File file3 = new File(MainTest.class.getClassLoader().getResource("1.png").getPath());

因此进入到 out\test目录下看看,发现 classes 和 resources 目录同时存在,这时候明白了,原来是资源文件和classes是分开存放的。
最后发现通过最后那种方式才能正确的取出文件。

[填坑步骤]

最后图之后简便,简单封装个方法吧。


    private static final File getResource(String file) {
        return new File(VisionEngine.class.getClassLoader().getResource(file).getPath());
    }

注意下,确认 test/resources 目录为 [test/resources] --右键--> [Mark Directory as] -->[Test Resources Root]。

目录
相关文章
|
1月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
335 4
|
2月前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
174 1
|
2月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
362 1
|
2月前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
202 3
|
3月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
1177 1
|
3月前
|
存储 安全 Java
java: 无法访问org.springframework.ldap.core.LdapTemplate
java: 无法访问org.springframework.ldap.core.LdapTemplate
131 9
|
3月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
483 64
|
4月前
|
机器学习/深度学习 Java 大数据
Java 大视界 -- Java 大数据在智能政务公共资源交易数据分析与监管中的应用(202)
本篇文章深入探讨了 Java 大数据在智能政务公共资源交易监管中的创新应用。通过构建高效的数据采集、智能分析与可视化决策系统,Java 大数据技术成功破解了传统监管中的数据孤岛、效率低下和监管滞后等难题,为公共资源交易打造了“智慧卫士”,助力政务监管迈向智能化、精准化新时代。
|
4月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
325 0
下一篇
oss云网关配置