spring项目只能识别到项目内的xml配置文件,无法识别jar中xml配置文件

解决思路:

在启动初始化期间,将jar包内部的文件拷贝到jar包外部相对路径中。//jarFullFileName: the file name with full path in jar.

//newFilePath: the new file directory. "./" means the current directory of jar file.

public boolean newFileFromJar(String jarFullFileName, String newFilePath){

String[] jarFilePath = null;

String newFileName = null;

File file = null;

OutputStream os = null;

InputStream is = null;

try {

//check if the source file existed.

is = Configer.class.getResourceAsStream(jarFullFileName);

if(is == null){

System.out.println("Fail to get input stream.");

return false;

}

//get the new file's full path name

jarFilePath = jarFullFileName.split("/");

newFileName = newFilePath+jarFilePath[jarFilePath.length-1];

System.out.println(newFileName);

//open or create the new file

file = new File(newFileName);

if(file.exists()){

System.out.println("file existed.");

}

else {

if(file.createNewFile() == false) {

System.out.println("fail to create new file "+newFileName);

return false;

}

}

os = new FileOutputStream(file);

//copy file content

byte[] buff = new byte[1024];

while (true) {

int readed = is.read(buff);

if (readed == -1) {

break;

}

byte[] temp = new byte[readed];

System.arraycopy(buff, 0, temp, 0, readed);

os.write(temp);

}

}

catch(Exception e) {

e.printStackTrace();

return false;

}

//close the io streams

try {

if(os != null)

os.close();

if(os != null)

os.close();

} catch (IOException e1) {

e1.printStackTrace();

}

return true;

}

...

//注意:参数jarFullFileName是jar包内部的相对路径,如路径"/applicationContext.xml"表示jar包根目录下的文件

newFileFromJar("applicationContext.xml",".");//copy the file to the current directory of jar file

注意:

在使用独立jar文件运行的java代码中,没法使用ClassPathXmlApplicationContext(..)来加载Spring的配置文件,因为该方法只能用于读取WEB-INF\classes下的配置文件。此时需要使用FileSystemXmlApplicationContext(..)方法来加载配置文件。

---------------------

参考:

https://blog.csdn.net/shandian534/article/details/37762301

https://blog.csdn.net/zxygww/article/details/48522873

java jar包 配置文件_java 导入jar包中配置文件相关推荐

  1. java项目导入包报错_转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类...

    在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...

  2. java.exe闪退_java 双击jar包闪退或没反应,使用cmd运行提示没有主清单属性,该如何解决...

    java 双击jar包闪退或没反应,使用cmd运行提示没有主清单属性 使用cmd把类打包成课双击执行的jar包,双击后没反应,然后我去修改注册表 HKEY_CLASSES_ROOT\jarfile\s ...

  3. jar 反编译_Java加密jar包流程

    Java加密效果概述 深思对 java 的源码保护方式是通过 Virbox Protector 与DS Protector 工具进行保护.软件商无需任何代码开发,即可轻松加密Java应用程序.Jar包 ...

  4. php导包,Thinkphp5.1 导入第三方包的问题

    一般刚接触tp5.1的,会很不适应,虽然版本号只是比5.0多了0.1,但是差别挺大,废弃了不少方法,官方的教程又很简单,很多东西没说全,在此鄙视一下框架作者,最起码体谅一下小白嘛,搞了好多天才把5.1 ...

  5. python怎么导入包-Python模块导入与包构建最佳实践

    [TOC] 最开始写程序的时候,都是一个文件里输入几行源码(python 的一个 web 框架bottle就特别强调自己是单文件框架).随着程程式变大变复杂,一个文件很难承载如此多的功能,因此将代码拆 ...

  6. 怎么导入sklearn包_在导入sklearn包是报错

    相信大家经常会遇到这种情况,在导入sklearn包时或者其他包时报错ImportError: cannot import name __check_build 此种情况的原因一般为包之间不兼容的问题导 ...

  7. java的使用Pair要导入什么包,第三方jar包的使用

    被导入的外部类所在源文件通常要打包成jar包,java中的jar文件装的是 .class 文件.它是一种压缩格式和zip兼容,被称为jar包. JDK提供的许多类,也是以jar包的形式提供的.在用的时 ...

  8. IntelliJ IDEA 自动导包快捷键和导入jar包方式

    自动导包快捷键:Alt + Enter 导入项目所需jar包方式: File -> Project Structure -> Libraries 然后选择你所需的jar包就ok了

  9. java jar 指定路径_java – 指定jar的类路径

    我正在尝试配置JAR的类路径,以便我的ResourceBundle可以从中获取属性文件. 如果我从.class文件运行它并指定-cp标志它工作正常,并且System.err.println(Syste ...

最新文章

  1. 机器学习笔记(四)决策树
  2. BP神经网络算法推导
  3. 读取纯真IP数据库的公用组件QQWry.NET
  4. C# - linq查询现有的DataTable
  5. 【附源码】为了帮助程序员谈恋爱,我做了这个APP
  6. 互联生活:业务模式聚焦
  7. 软工专硕考研_2021考研人数将突破400万?录取率或成史低!
  8. 读书笔记--Python基础教程 001
  9. 15种排序算法可视化展示
  10. 根据脑部扫描就能诊断精神分裂症的“人工智能”
  11. 2019考研数学汤家凤张宇李永乐复习资料
  12. Python - 批量修改文件夹名称
  13. 用计算机算术表白,数学表白密码
  14. 1t硬盘怎么分区最好_1TB的硬盘如何分区比较合理?
  15. ResponseEntity和ResponseBody比较
  16. 在R语言中,使用“=”和“-”到底有什么不同? 就是等号和箭头号有什么区别,是完全一样还是局部不同?
  17. apex库安装,解决amp not installed 报错( ModuleNotFoundError: No module named ‘apex‘)
  18. 520表白文案来了[联络易]
  19. oppo锁频段_给大家科普下现在的OPPO Reno3支持哪几个5G频段
  20. 常用的固定资产管理软件有哪些

热门文章

  1. 运行android程序时显示stop,Android系统.应用程序关闭时WorkManager是否正在运行?
  2. java商品管理系统_【Java Web】简易商品信息管理系统——首个Web项目
  3. MySQL 条件查询
  4. Jsoup使用选择器语法来查找元素
  5. dubbo官方文档_狂神说SpringBoot17:Dubbo和Zookeeper集成
  6. c语言10个数求立方合并输出,C语言 求出100~999之间的所有“水仙花数”并输出...
  7. 【OpenCV 例程200篇】57. 低通高斯滤波器
  8. 电大计算机应用技术基础视频,电大形成性测评-计算机应用技术基础01
  9. matlab rem和mod,Matlab的mod和rem
  10. 间接寻址级别不同_被遗忘的利息税,国债与存款的利率区别,同大额存单的4点大不同...