解决 IDEA 中src下xml等资源文件无法读取的问题

该问题的实质是,idea对classpath的规定。

在eclipse中,把资源文件放在src文件夹下,是可以找到的;

但是在idea中,直接把资源文件放在src文件夹下,如果不进行设置,是不能被找到的。

下面说说几种解决方法,网上说的都很混乱,我这里做一个总结:推荐方法4

1.将所有资源文件放在resources文件夹下

这样做很方便,比较容易想到,但是层次性就很差了,比如mybatis的映射配置文件mapper.xml,本来需要放在特定的包里面,与dao层,service层等层次为同一个层级,如今只能放在resource文件夹下,不方便分层;

2.如果该项目是maven项目:

配置maven的pom文件配置,在pom文件中找到<build>节点,添加下列代码:

[html] view plain copy

  1. <build>  
  2.     <resources>  
  3.         <resource>  
  4.             <directory>src/main/java</directory>  
  5.             <includes>  
  6.                 <include>**/*.xml</include>  
  7.             </includes>  
  8.         </resource>  
  9.     </resources>  
  10. </build>  

我尝试过将directory修改为具体的放置配置文件的包,即修改成 src/main/java/lj/necpu/mapperXML,然后<include>标签里面也做了很多修改和尝试,始终无法访问到配置文件;

所以,直接使用上面这样的配置就好;如果还是不能访问,欢迎跟帖讨论;如果你知道应该怎么样修改,也请跟帖讨论,谢谢~

参考:将IDEA
maven项目中src源代码下的xml等资源文件编译进classes文件夹

3.将包含配置文件的包,mark directory as ... Resources:

直接右键点击包 -> Mark Directory As ,你会发现只有一个exclude;怎么办?

Project Structure -> Modules -> Sources -> 选择包含配置文件的package -> Mark as -> 选择第三个 Resources ->
OK

参考:http://stackoverflow.com/questions/6104551/java-setting-classpath

4.将package添加到classpath里:

Project Struture -> Modules -> Dependencies -> "+" -> JARS or directories -> 选择包 

-> 弹出Choose Categories of Selected Files -> 选择Classes -> OK

参考:http://stackoverflow.com/questions/854264/how-to-add-directory-to-classpath-in-an-application-run-profile-in-intellij-idea

以上几种方法是在IDEA开发环境中可以找到资源文件,但是具体打包发布是否会包含该资源文件还需具体测试。

我的测试结果是,4种方法均可以在发布时包含package中的xml文件。

转载:http://blog.csdn.net/shifangwannian/article/details/48882201

时间: 2024-08-22 15:00:35

解决 IDEA 中src下xml等资源文件无法读取的问题的相关文章

sqlserver2005-关于MVC+Jsp模式学生成绩管理系统中src下servlet和bean的设置问题

问题描述 关于MVC+Jsp模式学生成绩管理系统中src下servlet和bean的设置问题 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %> 无标题文档 /jsp:useBean <% if(stu_id==null){response.sendRedirect("login.jsp"

VS下对Resx资源文件的操作

原文:VS下对Resx资源文件的操作 读取   using System.IO; using System.Resources; using System.Collections; using System.Reflection; namespace ResxEdit { class ResxDemo { void ReadResx(string strResxPath, Boolean isResourcePath) { AssemblyName[] referencedAssemblies

eclipse下的struts资源文件中文问题

前几天一个struts的资源文件的中文问题让我十分恼火,在eclipse中生成了新的ApplicationResource_zh_CN.properties 文件,但里面输入的中文在页面上死活显示不出来,都是乱码或者是 ????的样子,到网上找解决办法,说是i18n问题,要用jdk带的native2ascii工具转换zh_CN属性文件的存储格式,我依葫芦画瓢全部照做,满怀希望的刷新网页,结果又是一堆???????,让我更加郁闷.干脆就先让那该死的资源文件显示成英文的提示,这样才显示出我是高才生嘛

java_web 中src和web之间各个文件是如何配置的。

问题描述 我正在学习java_web,对src和web之间各个文件的关联和配置迷糊,希望大侠能举个简单的例子,具体点介绍一下,我用的是intellij9.0.一直在线等... 解决方案 解决方案二:配置????这是什么意思....web是存放页面的比如说:jsp,html.src是存放java代:Javabean,servlet啥的!!解决方案三:src目錄是可以指定的,預設是project下的src,這目錄開發時放源碼,發佈程序時就不是很重要.web比較重要的是WEB-INF目錄,裡面可以加l

一个读取扩展名为xml的资源文件的方法

xml 今天重构代码时,想把如下xml文件嵌入程序集中,在运行时读取: <?xml version="1.0" encoding="utf-8"?><Convertors xmlns="http://tempuri.org/~vs24E.xsd">    <Convertor>        <Name>1</Name>        <Category>1</Cate

关于当程序打包成jar包后.spring资源文件未读取到的问题

问题描述 功能描述:现在我开发的一个服务端的程序,开启一个Socket监听,接受客户端的Socket连接,并将传入的信息存入数据库系统采用框架:Spring+Hibernate其中Spring的主要配置文件为ApplicationContext.xml然后每个模块中也一个spring的xml配置文件,这些配置文件是通过ApplicationContext.xml通过<importresource="classpath*:com/xxx/**/*.xml"/>标签导入进来的.

php中配置文件操作 如config.php文件的读取修改等操作_php技巧

复制代码 代码如下: <?php $name="admin";//kkkk $bb='234'; $db=4561321; $kkk="admin"; ?> 函数定义: 配置文件数据值获取:function getconfig($file, $ini, $type="string") 配置文件数据项更新:function updateconfig($file, $ini, $value,$type="string"

使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OSS(https://www.aliyun.com/product/oss) 4.HTTPS(http://baike.baidu.com/view/14121.htm) 阅读目录结构 引: 一.准备工作 二.整体功能结构 三.具体实现步骤 四.关键点和问题处理 五.延伸与扩展 六.总结与思考 引:

在.NET中读取嵌入和使用资源文件的方法_C#教程

Dotnet中嵌入资源(位图.图标或光标等)有两种方式,一是直接把资源文件加入到项目,作为嵌入资源,在代码中通过Assembly的GetManifestResourceStream方法获取资源的Stream.另一种方法是在项目中加入. resx资源文件,在资源文件中添加资源,由ResourceManager类统一管理其中的资源. 下面分别详述这两种方法 一.使用GetManifestResourceStream读取嵌入资源 1.加入资源文件 直接把要嵌入到程序集的资源文件加入到项目中,可以加在项