eclipse 打包 jar 读取外部的配置文件 图片等 fatjar MANIFEST.MF Class-Path

 


这里主要是对今天遇到的打包问题进行记录...

 

以便以后忘了或者可能会帮助到需要帮助的人...

 

 

我遇到的问题有:

 

1.fatjar打包问题

如果用了第三方jar包,想把自己的项目一次性打包成一个jar,那么需要去下载fatjar,怎么安装我就不赘述了。

 

2.图片显示问题

我的项目里面界面引用了图片,直接在eclipse可以正常显示,但是打包出去显示不了

原因之一是我的代码写了引用的地址是 "src/xxx.jpg" ,这样的错的,因为编译过后会放到bin目录下,那样就找不到 "src/xxx.jpg"

而且最好是用一个专门的文件夹来放这样的文件 比如"resource/xxx.jpg"

引用地址的时候写成resource的相对路劲 "/resource/xxx.jpg" 即可。

 

		Toolkit tk = Toolkit.getDefaultToolkit();

		Image image = tk.createImage("/resource/xxx.jpg");


后来我图片引用得很多 我就写了一个类来放这些静态变量 然后其他地方引用这些静态变量即可 目的是好维护。

 

3.jar引用外部图片的问题

我想把我的图片不打包进jar,而是在jar的外面,那样方便我以后替换。

tk.createImage("/resource/xxx.jpg");的createImage可以给URL和filename

我开始用的URL

this.class.getResource("/resource/xxx.jpg");取图片路劲,

但是无论怎么取 这个方法都只能得到 我的项目/bin/ 这个目录

不能得到bin的同级或者上面级别的目录,不知是不是我用法没对。

最后换成

String filename = System.getProperty("user.dir") + "/resource/xxx.jpg";

createImage(filename);

 

的方法解决问题。

感觉要是jar包引用外部图片的话 只能给filename 用 URL 始终不行...

 

4.Class-Path问题

总感觉fatjar打包不太好,而且打包出来会多一些fatjar的包 大概30KB左右

还是自己在MANIFEST.MF修改Class-Path很好

注意空格

 

Manifest-Version: 1.0
Main-Class: hnysms.ShowMe
Class-Path: . lib/log4j-1.2.15.jar lib/jdsmsserver-3.4.jar lib/mysql-connector-java-5.1.3-rc-bin.jar


 

 

5.jar读取外部配置文件的问题

我想把我项目里面的配置文件 比如dbconfig.properties log4j.xml 不打包进jar

因为打包进去跟硬编码没多大区别了..

dbconfig.properties 直接可以在读取的代码里面写成

InputStream ins = getClass().getResourceAsStream("/resource/dbconfig.properties");

这样在eclipse会出错 打包出来是可以的。

 

但是log4j.xml 需要在你的main方法里面写

PropertyConfigurator.configure(System.getProperty("user.dir") + "/resource/log4j.xml"); 

这样问题就解决了...

 

付一张做好的程序截图

^_^ 很小菜的

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值