解决IDEA中resources下properties配置文件无法读取的问题

该案例是一个非maven的普通java程序。

 

问题说明:

  案例中将resources文件夹建在了src目录之外,导致程序读取不到db.properties文件

InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("resources/db.properties");

  报错:访问不到改路径

如图所示:

 

后来,将 resources文件夹挪到了src目录下面,也报错找不到路径,注意观察resources文件夹的颜色和样子

如图所示:

问题原因:

idea对这些配置的文件方式很明显和eclipse是不同的。在idea中有一个 Content Roots的概念。需要为每一个folder配置相应的Content Roots。Content Roots包括resources、sources、tests等。

  • java文件夹被标注为Sources,那么下面的所有子文件夹均为Sources,编译后生成.class文件。
  • Resources文件夹被标注为Resources,那么在该文件夹下的配置文件在编译时会自动复制到编译文件夹中。

那么对于idea来说,就有以下几种解决方案。

  1. 将配置文件放到Resources文件夹中,在代码中添加配置文件的虚拟路径。选中文件,右键-Copy Reference,就可以获取到文件的虚拟路径。
  2. 修改存放配置文件的文件夹的Content Roots为Resources,那么编译后,代码也能识别出来。

以上两种解决方案适用于make project方式来编译项目。

 

如图所示:

 

此时注意观察resources文件夹的颜色和样子发生了变化,这时候就可以读取到db.properties文件了

 

posted @ 2021-06-29 23:04  poscana  阅读(7992)  评论(0编辑  收藏  举报