XXX.getClass.getClassLoader.getResourceAsStream的方式加载文件,总是为null加载不到数据

我在用如下的代码加载配置文件的时候,总是加载不到数据,文件位置的对的

DBCP_Utiles01.class.getClassLoader().getResourceAsStream("dbcp.properties")

资源路径在idea的resources路径下

解决办法:

  • 1、查看下你的工程是不是被加载为maven工程,如果不是,右击下pom文件,as maven project ,变成pom工程先

  • 2、查看设置里面是否标识了resources文件夹

  • 3、resources下的配置文件有没有输出到target目录

对于MAVEN项目,Eclipse会自动把项目srcmainjava目录下的配置文件(.xml)和资源文件(.properties)搬运到target目录下,而intellij idea默认是不会帮我们做这件事的。

首先排除打包方式是pom

把它删掉或者改成打包为war包,同时plugin也要为war版本,否则报webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update)错误

      <plugins>
           <plugin>
              <artifactId>maven-war-plugin</artifactId>
              <version>3.0.0</version>
          </plugin>
      </plugins>

上面都没有问题时,在pom文件加入配置

  <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.xml</include>
                    <include>**/*.tld</include>
                    <include>**/*.xls</include>
                    <include>**/*.xlsx</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.yml</include>
                    <include>**/*.tld</include>
                    <include>**/*.xls</include>
                    <include>**/*.xlsx</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>

这段配置的意思就是把src/main/java和src/main/resources目录下所有的<include>里配置的相关文件都包含进去
同样,想包含其他什么文件,比如.txt文件,再加一个<include>标签类似的写法即可。

再把项目“Reimport”(右键选中项目->Maven->Reimport)一下,启动服务器


参考链接:https://www.cnblogs.com/lyh233/p/12746122.html
原文地址:https://www.cnblogs.com/2393920029-qq/p/15400312.html