检查文件路径和位置

文件未被打包

使用 Maven,资源文件应放在 src/main/resources 目录下。
文件路径需严格匹配:
src/main/resources/template/template.pdf

mvn clean
mvn compile

编译后检查 target/classes(Maven)中是否存在该文件

检查pom.xml,不确定可以吧includes标签注释掉

<build>
        <!-- 添加资源 -->
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <!-- src/main/resources下的指定资源放行 -->
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                    <include>**/*.pdf</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

验证文件是否被打包

如果项目打包为 JAR,解压后检查文件是否存在于 template/ 目录下:
jar tf your-app.jar | grep "template.pdf"

使用正确的类加载器

可能问题:
某些环境下(如 Web 容器或模块化应用),getClass().getResourceAsStream() 可能无法正确加载资源。

解决方案:
尝试改用 ClassLoader 直接加载资源:

InputStream inputStream = YourClass.class.getClassLoader()
                        .getResourceAsStream("template/template.pdf");

注意:此处路径不需要 开头的/,因为 ClassLoader 默认从 classpath 根目录开始查找。

如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ ~

SpringBoot读取resources下的文件不存在_jar