首页 > 解决方案 > Java getResourceAsStream 在 JAR 中始终为空

问题描述

我知道,他们有很多文章讨论它......但它对我不起作用。我有如下结构的html文件

src/main/resources
---------abc.html

在此处输入图像描述

我使用输入流来读取它

InputStream inputStream = getClass().getResourceAsStream("/abc.html");
                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
                    content = reader.lines()
                          .collect(Collectors.joining(System.lineSeparator()));

并用maven构建jar文件:

mvn clean package

并将项目运行到 jar 文件并使用 cmd 运行:

java -jar myproject.jar

但我总是收到 java.lang.NullPointerException。请建议

标签: javaspringjar

解决方案


根据使用 Maven 时的标准目录布局src/main/resources,除非您修改默认布局,否则资源目录应该是。

重命名resourceresources验证 JAR 文件是否包含 HTML 文件:

zipinfo -1 myproject.jar | grep abc

推荐阅读