最近的工作中需要将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

最新文章

  1. ssh/openssh
  2. android之远程启动服务
  3. 问题-delphi XE2 Stack Overflow- save your work and restart CodeGear
  4. Oracle行转列实例
  5. Oracle汇总笔记
  6. rowid去重(删除表的重复记录)
  7. [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  8. Python 标示符和关键字
  9. line-height
  10. 连接 sqlserver
  11. 微信redirect_uri域名与后台配置不一致,错误代码10003
  12. MD5密码加密
  13. D3D9 effect (hlsl)(转)
  14. Swift - 用UIScrollView实现视差动画效果
  15. python ipython spyder
  16. java基础篇---枚举详解
  17. Python实现KNN算法及手写程序识别
  18. Selenium2+python自动化55-unittest之装饰器(@classmethod)
  19. Nagle's Algorithm and TCP_NODELAY
  20. Selenium 安装与卸载

热门文章

  1. 线段树——codevs 1690 开关灯
  2. ●HDU 3507 Print Article
  3. BZOJ4870: [Shoi2017]组合数问题
  4. Hdu 5595 GTW likes math
  5. python绘制散点图,柱状图和折线图
  6. python中type dtype astype 的用法
  7. C语言程序设计实验第四次作业
  8. windows的常用快捷键(实用篇)
  9. MySQL中UTF8编码的数据在cmd下乱码
  10. VueJs(4)---V-model指令