`
wangyanlong0107
  • 浏览: 499666 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

解决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>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>

        </resource>
    </resources>
 </build>

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

 

  1. 那么问题是, 难道intellij必须以这种分开的方式来管理源码和资源文件嘛? 并不是的, intellij也可以像eclipse那样把source 和resource搅成一锅粥,下边来介绍怎么搞
    1. 这里需要注意一下,Intellij IDEA Version 2016.2.5 是有bug的, 有的时候, source下的资源文件是可以复制到目标文件夹的, 有的时候, 会被无视掉. 本文解决的问题就是, 当你的intellij不再帮你复制资源文件的时候, 你如何通过操作来让intellij自动帮你将资源文件拷贝到输出文件夹
  1. 我直接从朋友服务器上checkout一个项目
 
  1. 对这个项目做一些该做的配置, 比如输出文件夹啊, 库的位置啊, 还有部署一下tomcat啊
 
  1. 点运行之后, 可以看到, classes文件可以成功编译过来, 但是配置文件是过不来的
 
  1. 可以这样解决
    1. 之后到setting里边做如下的设置--这两步就能完全解决问题
首先打开setting 的build --> Compiler --> 把!?*.java 里边的?给删了 变成!*.java
下边打上勾
  1. 配置文件就都可以过来了

分享到:
评论

相关推荐

    intellij idea 设置多module路径.docx

    例如,如果你的代码需要读取某个模块下的配置文件,或者执行某些文件操作,确保工作目录正确设置是非常关键的。 此外,如果你有多个module,并且每个module有不同的运行配置,可能需要为每个module单独设置`Working...

    geotools学习(一)IntelliJ IDEA搭建快速入门示例.pdf

    本文档通过一步步指导如何在 IntelliJ IDEA 中配置 GeoTools 环境,并创建了一个简单的 Maven 项目作为示例。通过这种方式,初学者可以快速上手 GeoTools 的基本使用,并为进一步的学习打下坚实的基础。未来的学习...

    mac idea2021.2版本中的yml文件不显示spring显示的是yml文件解决办法

    此外,IDEA也提供了多种调试工具,来帮助开发者快速定位和解决问题。例如,IDEA的调试工具可以对代码进行单步调试、断点调试、变量监视等等。这些功能可以帮助开发者快速地找到问题的根源,并对问题进行解决。 mac ...

    idea中.properties文件中文显示乱码问题的解决 文件中文乱码1

    在开发Java应用时,我们经常会遇到配置文件,如`.properties`文件,用于存储应用程序的配置信息。这些文件可能包含中文字符,但在某些情况下,使用IntelliJ IDEA打开这些文件时可能会出现中文乱码的问题。这主要是...

    Intellij IDEA中使用maven filter遇到的问题

    在给定的文件列表中,`pom.xml`是Maven项目的配置文件,可能包含Filter的配置;而`src`目录通常包含源代码和资源文件,其中的资源文件可能会用到Maven Filter。分析这些文件可以帮助我们定位问题所在,修复配置或...

    intellij idea 中调用kettle9.2.0.0-290样例

    【标题】"IntelliJ IDEA 中调用 Kettle 9.2.0.0-290 示例"涉及的关键知识点主要包括IntelliJ IDEA的集成开发环境(IDE)使用以及Kettle(Pentaho Data Integration,PDI)工具的集成与执行。Kettle是一款强大的ETL...

    换了最新的idea如何将原来旧版本的idea设置导进新的idea中

    通过导入这些文件,新版本的IntelliJ IDEA就能匹配你的旧版本配置,使你能够无缝地从旧版本过渡到新版本。需要注意的是,有些新版本可能会有新增或更改的设置项,导入旧设置后可能需要手动调整,以充分利用新版本的...

    intellij idea采用ssm框架实现的数据库增删查改demo

    配置文件mybatis-config.xml定义了数据源和事务管理器,Mapper接口和XML配置文件定义了SQL操作。 4. **IntelliJ IDEA设置**:为了配置SSM环境,开发者需要在IDEA中创建一个新的Maven项目,添加相关的SSM依赖。此外...

    解决IntelliJ IDEA 控制台输出中文乱码问题(史上最简单)

    本文将详细阐述如何解决这一问题,步骤非常简单,适合所有IntelliJ IDEA用户。 首先,我们要了解出现乱码的根本原因。在计算机系统中,字符编码是用于表示文本的一系列规则。当IDE和运行环境的字符编码不一致时,就...

    基于Intellij Idea乱码的解决方法

    * 在idea的配置文件中添加-Dfile.encoding=UTF-8,例如在idea &gt; bin &gt; idea.exe.vmoptions或idea64.exe.vmoptions文件中添加该命令行参数。 * 使用其他编码格式,例如GBK或GB2312等,但是这可能会导致其他问题。 ...

    Intellij IDEA常用操作说明

    ### IntelliJ IDEA 常用操作说明 #### 一、项目与模块管理 ##### 1.1 项目 在 IntelliJ IDEA 中,项目管理有着独特的逻辑。与 Eclipse 不同,IntelliJ IDEA 默认一次只打开一个项目。 - **空项目**:用户可以...

    IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题(已解决)

    "IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题解决方案" 本文主要介绍了IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题的解决方案。这篇文章详细介绍了 IDEA最新版2020.1的maven工程本地依赖仓库...

    idea插件开发-自定义语言

    在IntelliJ IDEA中开发插件是一项非常实用的技能,可以极大地提高开发效率。本教程将专注于自定义语言的插件开发,特别是如何利用properties文件和customLanguage API来实现这一目标。以下是一些核心知识点: 1. **...

    在web和j2se中两个不同环境下 读取配置文件 备忘

    在实际开发中,开发者可能会结合IDE(如IntelliJ IDEA或Eclipse)的特性,比如资源管理器功能,来更方便地管理和读取配置文件。 总之,无论是Web环境还是J2SE环境,读取配置文件都是通过`java.util.Properties`类来...

    idea工具中直接从mapper.Java文件中跳转到mapper.xml文件的插件,挺不错的

    在Java开发领域,IDEA(IntelliJ IDEA)是一款广泛使用的集成开发环境,以其高效、智能的特性深受程序员喜爱。对于使用MyBatis框架的开发者来说,MyBatis的Mapper接口与对应的Mapper XML文件之间的跳转是日常开发中...

    如何解决springboot读取配置文件的中文乱码问题

    下面将详细介绍如何解决Spring Boot读取配置文件时的中文乱码问题。 首先,我们需要理解编码的基本概念。在计算机中,文本是以二进制形式存储的,而编码则是一种规则,用于将字符转换为二进制和反向转换。UTF-8是最...

    IntelliJ IDEA将导入的项目转成maven项目

    在文件选择器中找到项目的`pom.xml`文件,这是Maven项目的配置文件,导入后,IDEA会识别出这是一个Maven项目。 4. **导入依赖**: 导入`pom.xml`后,IDEA会自动读取其中的依赖,并将它们添加到项目的类路径中。在...

    IntelliJ IDEA下SpringBoot+Maven+JPA+Thymeleaf整合实现增删改查及分页入门项目实例.zip

    这是一个基于Java技术栈的Web开发入门项目实例,主要利用IntelliJ IDEA作为集成开发环境,SpringBoot作为核心框架,Maven作为项目构建工具,JPA(Java Persistence API)作为持久层解决方案,以及Thymeleaf作为视...

    antlr-intellij-plugin-v4-1.12.zip idea的antlr插件

    它广泛应用于构建语言、工具和框架,包括SQL、HTML、XML、配置文件、编程语言以及各种通信协议等。ANTLR可以生成Java、C#、Python、JavaScript等多种目标语言的解析器和词法分析器。 IntelliJ IDEA是一款非常流行的...

    IDEA使用properties配置文件进行mysql数据库连接的教程图解

    "IDEA使用properties配置文件进行mysql数据库连接的教程图解" 本教程主要介绍了使用IDEA中的properties配置文件来连接mysql数据库的步骤。properties配置文件是一种可以永久存储到文件中的key-value集合,它的键和...

Global site tag (gtag.js) - Google Analytics