java打包jar 配置文件_转载:java程序打包成jar 配置文件信息路径

当一个Java项目引用了外部配置文件config.properties并被打包为Runnable JAR时,配置文件不应包含在JAR内,而应放在JAR外部。通过使用`System.getProperty("user.dir")`获取执行路径,可以读取到外部配置文件,避免运行时错误。同样的方法适用于其他如MyBatis的配置文件读取。
摘要由CSDN通过智能技术生成

一个普通的java project,里面引用了config.properties配置文件,将项目打成Runnable jar,然后将config.properties放到打包后的jar路径下,执行该jar包,出错,原工程中properties文件读取代码如下:

InputStream in = SystemConfig.class.getResourceAsStream("/config.properties");

FileInputStream in = new FileInputStream(rootPath+"/config.properties");

上网搜了下class.getResource方式读取配置文件时,在eclipse中运行是没有问题的。将该类打包成jar包执行,如果配置文件没有一起打包到该jar包中,文件查找的路径就会报错。但是对于配置文件,我们一般不希望将其打包到jar包中,而是一般放到jar包外,随时进行配置。修改方式如下:

String rootPath = System.getProperty("user.dir").replace("\\", "/");

FileInputStream in = new FileInputStream(rootPath+"/config.properties");

首先程序获取程序的执行路径,也就是你打包后的jar存放路径,然后找到该路径下的config.properties文件读取,就可以了。

备注:对于其他的一些配置文件读取,也要相应修改,例如mybatis读取配置文件,默认方式是

java.io.Reader reader = Resources.getResourceAsReader("Configuration.xml");

factory = new SqlSessionFactoryBuilder().build(reader);

如果打包到jar运行,Configuration.xml没有打包进去,也会报错,统一修改成

String rootPath = System.getProperty("user.dir").replace("\\", "/");

java.io.Reader reader = new FileReader(rootPath+"/Configuration.xml");

factory = new SqlSessionFactoryBuilder().build(reader);

出自博客:http://www.cnblogs.com/king1302217/p/5434989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值