gpt4 book ai didi

java - 我有一个关于如何运行 springboot 项目的问题

转载 作者:行者123 更新时间:2023-12-01 06:02:58 26 4
gpt4 key购买 nike

在我的网络应用程序中,我想读取 src/main/resource/static/doc 中的 excel 文件,因此我使用

String basePath = ClassLoader.getSystemResource("").getPath();

获取资源路径并读取。它在我的 IDE IDEA 中运行,我只需运行它即可获得 excel。

但是,当我使用 java -jar lab.jar 运行 Spring Boot 项目时,它抛出了 NullpointerException,但是当我使用

String basePath = ClassLoader.getSystemResource("application.properties").getPath();

打印出来,看到了/Users/zhangzhikai/lab-center/target/lab.jar!/BOOT-INF/classes!/application.properties。

为什么我无法从 jar 中获取 Excel?

这是我的文件目录: enter image description here

最佳答案

在 Java 中使用文件时,它必须指向操作系统文件系统上的物理文件。运行未打包的应用程序时就是这种情况,但是当运行 jar 时,它不是物理文件,因此无法工作(导致错误或空指针异常)

使用Spring的Resource类之一来访问资源。在本例中,由于它来自您想要使用 ClassPathResource 的类路径。然后直接使用InputStream读取文件。

Resource input = new ClassPathResource(“static/doc/modal/model.xls”);
InputStream in = input.getInputStream();
// Use InputStream to read file

这将作为打包和未打包的应用程序运行。不要使用 getFile 因为打包后它不起作用。

关于java - 我有一个关于如何运行 springboot 项目的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52926080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com