当前位置: 首页 > 知识库问答 >
问题:

Spring启动无法使用类路径资源查找文件

游勇军
2023-03-14

使用Spring护套。我正在尝试使用Apache POI库解析项目中本地存储的excel文件。我的目录结构如下:

>

  • src

    >

  • 主要

    >

  • java语言

    • com.app
      • 控制器
      • 模型
      • 存储 库

      资源

      • 静态
        • 测试.xlsx
        File excel = new ClassPathResource("Test.xlsx").getFile();
        
        File file = new File(classLoader.getResource("src/main/resources/static/test.xlsx").getFile());
        

        我已经尝试了以上两种访问文件的方法,并且尝试了许多不同的文件路径,但是都没有效果。我没有得到构建错误或运行时错误,只是没有找到文件,当我试图调用该方法时,我在那一行得到一个NullPointerException。

  • 共有2个答案

    冉丰茂
    2023-03-14

    因此,您只需重写扩展< code > WebMvcConfigurerAdapter 的< code>@Configuration类的addResourceHandlers方法

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
    

    这是一篇关于Spring resources的博文——这里。

    更多细节请看spring文档。

    尉迟子民
    2023-03-14

    我相信对你来说正确的是

    new ClassPathResource("/static/Test.xlsx").getFile()
    
     类似资料:
    • 我正在使用我的第一个spring helloworld程序,使用STS和maven,这是一个简单的IOC示例 和实现类 还有例外 L 它显示无法找到xml文件的位置,但我指定了我使用Spring工具套件mvc maven项目的位置

    • 在Spring中,我可以通过指定相对于目录的路径来访问资源。例如,如果我要求,我将得到一个表示。然而,我看不到相反的方向。 给定一个,是否有办法找到它相对于的路径? 我正在使用来获取我的应用程序中的文件资源列表。我需要的资源位于我的应用程序的文件夹中。 我可以很容易地得到绝对路径,但是我想找到一种方法来获得从开始的部分,因为Spring就是这样发现它的。

    • 上面是我的程序,错误显示为: 可能的问题是什么?请帮忙,因为我是新来的 我面临着同样的问题,我该如何解决?

    • #include <stdio.h> #include <time.h> int main(void) { time_t now = time(NULL); struct tm local = {0}; struct tm gmt = {0}; localtime_r(&now, &local); gmtime_r

    • 我遇到一个问题,IntelliJ13.1.4在运行单元测试时,在模块的目录中找不到文件。 在回答之前请注意,我已经完成了以下所有操作: 该模块是一个分级项目,如果我运行,单元测试运行良好。 我过去在IntelliJ中成功地运行了这个单元测试,它找到了模块。(也许是Intellij的早期版本?) 我已经检查了IntelliJ模块设置,并且目录被标记为测试资源目录。(见下面的截图。) 我正在类中转储单

    • 问题内容: 是否有API可以获取类路径资源(例如,我将从中获得的资源)?理想情况下,我想将新的API与类路径资源一起使用。 问题答案: 这对我有用: