【问题标题】:Java getResourceAsStream is always null in JARJava getResourceAsStream 在 JAR 中始终为空
【发布时间】:2020-05-22 15:51:43
【问题描述】:

我知道,他们有很多文章讨论它......但它对我不起作用。 我有如下结构的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。请指教

【问题讨论】:

  • 你有src/main/abc.htmlsrc/main/resources/abc.html吗?目录名通常是resources 而不是resource
  • 如果省略/ 会怎样?
  • 你试过InputStream stream = getClass().getClassLoader().getResourceAsStream("abc.html"); 吗?
  • @KarolDowbecki:它是 src/main/resource/abc.html
  • 嗨,khelwood:是一样的。

标签: java spring jar


【解决方案1】:

根据Standard Directory Layout,使用 Maven 时资源目录应为src/main/resources,除非您修改默认布局。

resource 重命名为 resources 并验证 JAR 文件是否包含 HTML 文件:

zipinfo -1 myproject.jar | grep abc

【讨论】:

  • 对不起,我的错误..应该是资源...我更新了问题
猜你喜欢
  • 2017-11-13
  • 2011-05-16
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多