java jar包 配置文件_java 导入jar包中配置文件
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包中配置文件相关推荐
- java项目导入包报错_转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类...
在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...
- java.exe闪退_java 双击jar包闪退或没反应,使用cmd运行提示没有主清单属性,该如何解决...
java 双击jar包闪退或没反应,使用cmd运行提示没有主清单属性 使用cmd把类打包成课双击执行的jar包,双击后没反应,然后我去修改注册表 HKEY_CLASSES_ROOT\jarfile\s ...
- jar 反编译_Java加密jar包流程
Java加密效果概述 深思对 java 的源码保护方式是通过 Virbox Protector 与DS Protector 工具进行保护.软件商无需任何代码开发,即可轻松加密Java应用程序.Jar包 ...
- php导包,Thinkphp5.1 导入第三方包的问题
一般刚接触tp5.1的,会很不适应,虽然版本号只是比5.0多了0.1,但是差别挺大,废弃了不少方法,官方的教程又很简单,很多东西没说全,在此鄙视一下框架作者,最起码体谅一下小白嘛,搞了好多天才把5.1 ...
- python怎么导入包-Python模块导入与包构建最佳实践
[TOC] 最开始写程序的时候,都是一个文件里输入几行源码(python 的一个 web 框架bottle就特别强调自己是单文件框架).随着程程式变大变复杂,一个文件很难承载如此多的功能,因此将代码拆 ...
- 怎么导入sklearn包_在导入sklearn包是报错
相信大家经常会遇到这种情况,在导入sklearn包时或者其他包时报错ImportError: cannot import name __check_build 此种情况的原因一般为包之间不兼容的问题导 ...
- java的使用Pair要导入什么包,第三方jar包的使用
被导入的外部类所在源文件通常要打包成jar包,java中的jar文件装的是 .class 文件.它是一种压缩格式和zip兼容,被称为jar包. JDK提供的许多类,也是以jar包的形式提供的.在用的时 ...
- IntelliJ IDEA 自动导包快捷键和导入jar包方式
自动导包快捷键:Alt + Enter 导入项目所需jar包方式: File -> Project Structure -> Libraries 然后选择你所需的jar包就ok了
- java jar 指定路径_java – 指定jar的类路径
我正在尝试配置JAR的类路径,以便我的ResourceBundle可以从中获取属性文件. 如果我从.class文件运行它并指定-cp标志它工作正常,并且System.err.println(Syste ...
最新文章
- 机器学习笔记(四)决策树
- BP神经网络算法推导
- 读取纯真IP数据库的公用组件QQWry.NET
- C# - linq查询现有的DataTable
- 【附源码】为了帮助程序员谈恋爱,我做了这个APP
- 互联生活:业务模式聚焦
- 软工专硕考研_2021考研人数将突破400万?录取率或成史低!
- 读书笔记--Python基础教程 001
- 15种排序算法可视化展示
- 根据脑部扫描就能诊断精神分裂症的“人工智能”
- 2019考研数学汤家凤张宇李永乐复习资料
- Python - 批量修改文件夹名称
- 用计算机算术表白,数学表白密码
- 1t硬盘怎么分区最好_1TB的硬盘如何分区比较合理?
- ResponseEntity和ResponseBody比较
- 在R语言中,使用“=”和“-”到底有什么不同? 就是等号和箭头号有什么区别,是完全一样还是局部不同?
- apex库安装,解决amp not installed 报错( ModuleNotFoundError: No module named ‘apex‘)
- 520表白文案来了[联络易]
- oppo锁频段_给大家科普下现在的OPPO Reno3支持哪几个5G频段
- 常用的固定资产管理软件有哪些
热门文章
- 运行android程序时显示stop,Android系统.应用程序关闭时WorkManager是否正在运行?
- java商品管理系统_【Java Web】简易商品信息管理系统——首个Web项目
- MySQL 条件查询
- Jsoup使用选择器语法来查找元素
- dubbo官方文档_狂神说SpringBoot17:Dubbo和Zookeeper集成
- c语言10个数求立方合并输出,C语言 求出100~999之间的所有“水仙花数”并输出...
- 【OpenCV 例程200篇】57. 低通高斯滤波器
- 电大计算机应用技术基础视频,电大形成性测评-计算机应用技术基础01
- matlab rem和mod,Matlab的mod和rem
- 间接寻址级别不同_被遗忘的利息税,国债与存款的利率区别,同大额存单的4点大不同...