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会自动把项目src\main\java\目录下的配置文件(.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