Eclipse打jar包,资源文件的读取

本文介绍了在Eclipse中打包Java程序时遇到的三个问题及其解决方案:1) 通过'Runnable JAR file'选项并设置'Extract required libraries into generated JAR'来处理第三方jar包找不到的问题;2) 将资源文件放在类路径根目录下确保一同打包;3) 使用类加载器按相对路径读取Jar包内的资源文件,解决了资源文件读取不到的难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近的工作中需要将java程序打一个jar包,然后在Linux中供调用。程序中需要读取一个配置文件。遇到了三个问题。第一个是依赖的第三方Jar包打成Jar包后找不到;第二个问题是资源文件所在的文件夹打jar包时没有一起打入Jar包中;第三个问题是找不到资源文件,无法读取到指定的文件。下面给出我对三个问题的解决方法:


第三方jar包找不到

针对这个问题,我没有按照网上一般的方法自己写MANIFIST.FM文件的方式。因为我只依赖了一个数据库驱动的jar包,我偷了个懒,直接选中工程右键单击,选择export-->Runnable JAR file-->出现如下所示界面,选择执行程序和Jar包地址,最后在Library handling选择一定选择Extract required libraries into generated JAR选项,该选项是将所第三方Jar包中的用到的class一起打到生成的Jar包中。这样就不会出现第三方的NoClassDefoundError了。



资源文件或配置文件不能打入Jar包中

针对这个问题,需要将配置文件或资源文件所在的文件夹放在类所在的根目录下,就可以一起打包了,如下图中config文件夹所示:



资源文件读取不到

针对这个问题,是因为我们在将工程打成Jar包之后,不能再按照文件的绝对路径找到配置文件了,因为文件已经在Jar包里面了,Jar包是一个特殊的文件,不能通过文件夹路径找到Jar里面的配置文件。可以通过类加载器按照相对路径读取配置文件:

String configFile = "config/cws.cfg" ;
InputStream is = **.getClassLoader().getResourceAsStream(configFile);

详细的关于资源文件读取的知识,请参考:http://www.iteye.com/topic/483115

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值