Java getResourceAsStream在JAR中始终为空

Java getResourceAsStream在JAR中始终为空,java,spring,jar,Java,Spring,Jar,我知道,他们有很多文章都在讨论这个问题……但这对我不起作用。 我有如下结构的html文件 src/main/resources ---------abc.html 我使用输入流来读取它 InputStream inputStream = getClass().getResourceAsStream("/abc.html"); BufferedReader reader = new BufferedReader(new InputStreamReader

我知道,他们有很多文章都在讨论这个问题……但这对我不起作用。 我有如下结构的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。请根据使用Maven时的建议,资源目录应为
src/main/resources
,除非您修改默认布局

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

zipinfo-1 myproject.jar | grep abc

您有
src/main/abc.html
还是
src/main/resources/abc.html
?目录名通常是
resources
而不是
resource
。如果省略
/
,该怎么办?是否尝试
InputStream=getClass().getClassLoader().getResourceAsStream(“abc.html”)?@KarolDowbecki:是src/main/resource/abc.htmlhi khelwood:是一样的。对不起,我错了……应该是resources……我更新了问题