在jar包在读取配置是找不到文件
来源:互联网 发布:什么软件下歌不要钱 编辑:程序博客网 时间:2024/04/30 09:06
打包好的jar包在读取配置文件时找不到文件的问题,结果试了很多方法。有些方法在IDE环境下可以正常读取配置文件,但是打包后将jar包放在服务器上就会出现找不到配置文件的异常。有时打开jar还会发现配置文件没有在jar里,所以问题应该是两个问题,一个是配置文件没有加载到jar里。二是真的找不到配置文件
读取jar包中的资源用下面的方式:
InputStream is=this.getClass().getResourceAsStream("/resource/res.txt");
BufferedReader br=new BufferedReader(new InputStreamReader(is));
其中/resource/res.txt是jar包中的资源文件。
this.getClass()是jar包中的某一个类
将java工程打包成可执行的jar时,根目录下的配置文件都不会装载到jar里。但是可以装在根目录下某个文件夹里的properties文件。所以可以在项目根目录下新建一个config的文件,里面放置项目需要的一系列配置文件
2. 读取配置文件
读取配置文件的方法有很多,常见的如下:
1)我们加载log4j.properties一般使用的是PropertyConfigurator.configure("log4j.properties");,如果我们打开configure方法就会发现,里面使用的是FileInputStream类来加载log4j.properties,而此时log4j.properties是放在项目根目录下。
2)也可以使用ResourceBundle bundle = ResourceBundle.getBundle("config/resconfig");,使用这种方式会遇到中文问题。当配置文件中有中文或者中文符号时,读取出来的数据就会出现乱码,因为ResourceBundle在读取properties文件时统一使用iso8859-1编码。解决办法一是在使用keyValue时,进行编码转换,String value = new String(bundle.getString(key).getBytes("ISO-8859-1"), "XXX"); 二是,将*.properties转换成为unicode形式,但是我们一般创建配置文件都是使用UTF-8格式编码成都网站推广。
3)使用流的方式读取,就想log4j封装的方法一样,但是要保证配置文件放在根目录下的某个文件夹下
Properties prop=new Properties();
prop.load(new InputStreamReader(ChiqEPGTask.class.getClassLoader().getResourceAsStream("config/channel.properties"), "UTF-8"));
java 程序打包为jar发布后,读取配置文件路径出错 ,怎样获取配置文件路径?
把配置文件ccc.xml放到编译路径,如src/com.aaa.aa下面,然后再根据
String rootPath=Xxxx.class.getResource("/").getPath();
获取到编译的根路径,配置文件的地址就是rootPath+"com/aaa/aa/ccc.xml"
- 在jar包在读取配置是找不到文件
- MyEclipse10在读取XML文件中的数据找不到指定路径
- springboot打包jar包找不到jsp文件以及在linux永久执行java -jar以及springboot的多环境配置
- WebLogic11g在startWebLogic.cmd文件中配置jar包启动
- idea 找不到jar包
- android找不到jar包
- Maven 找不到 jar 包
- Maven 找不到 jar 包
- maven找不到jar包
- 找不到jar包
- 在Maven中怎么配置外部Jar 博客分类: Maven 假设我们有一个Maven的project,其中有些Jar包不是来自Maven库的,是存在本地的某些Jar文件,比如说在project下有
- maven管理的项目配置找不到jar包中的类
- 运行jar包提示找不到.properties文件解决方法~
- 运行jar包提示找不到.properties文件的问题
- 打第三方jar包,找不到资源文件问题解决方案
- 打jar包 资源文件找不到的问题
- 运行jar包提示找不到.properties文件的问题
- jar包在tomcat里找不到的原因
- 请不要做浮躁的人
- socket listen函数详解及TCP链接过程简要说明
- SQL HAVING 子句
- 僵尸进程和孤儿进程
- 关于JavaScript的函数问题
- 在jar包在读取配置是找不到文件
- qt4.6.3移植以及一线tslib移植
- SQL UCASE() 函数
- 你不知道的JavaScript--Item8 函数,方法,构造函数调用
- 查询所有产品的原价的SQL
- 周末小计
- SQL LCASE() 函数
- Magento查询历史完成订单的产品销售价格
- poj 1321