解决IntelliJ IDEA无法读取配置文件的问题

最近在学Mybatis,按照视频的讲解在项目的某个包里建立配置文件,然后读取配置文件,但是一直提示异常。

读取配置文件的为官方代码:

String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();

经过反复思考,视频用的ide是eclipse,eclipse里在包下的配置文件(.propoties 和.xml等)编译之后会自动复制到编译后的文件夹中,也就是classes目录。因此代码可以通过路径加载到配置文件。

而现在我们使用的是IntelliJ IDEA,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. 把配置文件放在com.zjut.ssm.config包中,修改config文件夹的Content Roots为Resources,那么编译后,代码也能识别出来。

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

如果是maven项目。还可以通过配置pom.xml来实现。

 <build>
<finalName>springmvc-study</finalName>
<resources>
<resource>
<directory>${basedir}/src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
</resources>
</build>

这样不用对idea设置,也可以使用maven的编译命令编译项目,并复制配置文件到编译好的文件夹中。

解决IntelliJ IDEA无法读取配置文件的问题的更多相关文章

  1. 解决IntelliJ IDEA无法读取配置文件的问题(转发:https://www.cnblogs.com/Sinte-Beuve/p/5730572.html)

    最近在学Mybatis,按照视频的讲解在项目的某个包里建立配置文件,然后读取配置文件,但是一直提示异常. 读取配置文件的为官方代码: String resource = "mybatis-c ...

  2. 解决IntelliJ IDEA无法读取配置*.properties文件的问题

    idea对这些配置的文件方式很明显和eclipse是不同的.在idea中有一个 Content Roots的概念.需要为每一个folder配置相应的Content Roots.Content Root ...

  3. ASP.NET伪静态-无法读取配置文件,因为它超过了最大文件大小的解决办法

    一直都在使用微软URLRewriter,具体的使用方法我就不多说了,网上文章很多. 但最近遇到一个问题,就是当web.config文件里面设置伪静态规则过多,大于2M的时候,就报错:无法读取配置文件, ...

  4. (转)IIS7无法读取配置文件解决办法

    web.config 太大导致”出现无法读取配置文件,因为它超过了最大文件大小”错误问题的解决方法,如下:HKLM\SOFTWARE\Microsoft\InetStp\Configuration\M ...

  5. 解决IIS7虚拟目录出现HTTP 错误 500.19(由于权限不足而无法读取配置文件)的问题

    今天在windows 7笔记本上搭建一个ASP.NET网络平台,启动IIS 7 时候出现错误: 错误摘要HTTP 错误 500.19 - Internal Server Error无法访问请求的页面, ...

  6. python ConfigParser读取配置文件,及解决报错(去掉BOM)ConfigParser.MissingSectionHeaderError: File contains no section headers的方法

    先说一下在读取配置文件时报错的问题--ConfigParser.MissingSectionHeaderError: File contains no section headers 问题描述: 在练 ...

  7. 解决IIS出现“由于权限不足而无法读取配置文件”的问题

    在部署IIS项目的时候,今天突然遇到了如下问题: HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效 详细错误信息: 由于权限 ...

  8. 【无私分享:ASP.NET CORE 项目实战(第八章)】读取配置文件(二) 读取自定义配置文件

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 我们在 读取配置文件(一) appsettings.json 中介绍了,如何读取appsettings.json. 但随之产生 ...

  9. 在IIS Express中调试时无法读取配置文件 错误

    在IIS Express中调试代码时,如果出现"无法读取配置文件"的问题(如图),这种情况是IIS Express的"applicationhost.config&quo ...

随机推荐

  1. AJax登录。。转

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.        AJAX 是一种用于创建快速 ...

  2. linux用户不在sudoers文件中

    *** is not in the sudoers file.  This incident will be reported."  (用户不在sudoers文件中--) 处理这个问题很简单 ...

  3. bzoj3380+3381+3382+3383 Usaco2004 Open

    四道比较水的题 T1:SPFA+状压 #include<stdio.h> #include<string.h> #include<algorithm> #inclu ...

  4. 下载apk文件浏览器会直接打开并显示乱码的问题

    今天同事反映他的apk文件在自己的老项目中下载有问题:下载apk文件浏览器会直接打开并显示乱码,在别的项目中就没有问题. 后分析response的content-type发现,老项目的类型是text/ ...

  5. .NET 4.0 版本号

    .NET 4.5.1, .NET 4.5 和 .NET 4.0 均基于 .NET 4.0 CLR,而 .NET 4.5 对 CLR进行了升级和Bug修复. .NET 4.0 - 4.0.30319.1 ...

  6. UI控件(UIButton)

    @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // UIButtonTypeCustom = 0, ...

  7. 使用Akka.net开发第一个分布式应用

    系列主题:基于消息的软件架构模型演变 既然这个系列的主题是"基于消息的架构模型演变",少不了说说Actor模型.Akka.net是一个基于Actor模型的分布式框架.如果你对分布式 ...

  8. Hadoop学习笔记—4.初识MapReduce

    一.神马是高大上的MapReduce MapReduce是Google的一项重要技术,它首先是一个编程模型,用以进行大数据量的计算.对于大数据量的计算,通常采用的处理手法就是并行计算.但对许多开发者来 ...

  9. Redhat环境下编译安装Google Bazel

    Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...

  10. [nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC

    一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻 ...