eclipse 打包 jar 读取外部的配置文件 图片等 fatjar MANIFEST.MF Class-Path
2011-09-24 21:08
736 查看
这里主要是对今天遇到的打包问题进行记录...
以便以后忘了或者可能会帮助到需要帮助的人...
我遇到的问题有:
1.fatjar打包问题
如果用了第三方jar包,想把自己的项目一次性打包成一个jar,那么需要去下载fatjar,怎么安装我就不赘述了。
2.图片显示问题
我的项目里面界面引用了图片,直接在eclipse可以正常显示,但是打包出去显示不了
原因之一是我的代码写了引用的地址是 "src/xxx.jpg" ,这样的错的,因为编译过后会放到bin目录下,那样就找不到 "src/xxx.jpg"
而且最好是用一个专门的文件夹来放这样的文件 比如"resource/xxx.jpg"
引用地址的时候写成resource的相对路劲 "/resource/xxx.jpg" 即可。
后来我图片引用得很多 我就写了一个类来放这些静态变量 然后其他地方引用这些静态变量即可 目的是好维护。
3.jar引用外部图片的问题
我想把我的图片不打包进jar,而是在jar的外面,那样方便我以后替换。
tk.createImage("/resource/xxx.jpg");的createImage可以给URL和filename
我开始用的URL
this.class.getResource("/resource/xxx.jpg");取图片路劲,
但是无论怎么取 这个方法都只能得到 我的项目/bin/ 这个目录
不能得到bin的同级或者上面级别的目录,不知是不是我用法没对。
最后换成
的方法解决问题。
感觉要是jar包引用外部图片的话 只能给filename 用 URL 始终不行...
4.Class-Path问题
总感觉fatjar打包不太好,而且打包出来会多一些fatjar的包 大概30KB左右
还是自己在MANIFEST.MF修改Class-Path很好
注意空格
5.jar读取外部配置文件的问题
我想把我项目里面的配置文件 比如dbconfig.properties log4j.xml 不打包进jar
因为打包进去跟硬编码没多大区别了..
dbconfig.properties 直接可以在读取的代码里面写成
这样在eclipse会出错 打包出来是可以的。
但是log4j.xml 需要在你的main方法里面写
这样问题就解决了...
付一张做好的程序截图
^_^ 很小菜的
以便以后忘了或者可能会帮助到需要帮助的人...
我遇到的问题有:
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");
这样问题就解决了...
付一张做好的程序截图
^_^ 很小菜的
相关文章推荐
- 通过ANT打包jar并生成MANIFEST.MF中的Class-Path属性
- 通过ANT打包jar并生成MANIFEST.MF中的Class-Path属性
- Eclipse中Java项目打包——外部jar包位置 ,生成jar包位置,mf文件书写等问题
- Eclipse导出Jar包,修改Manifest.MF文件的Calss-Path
- 【深入JAVA】程序打包成Jar包运行并读取外部配置文件
- Eclipse中Java项目打包——外部jar包位置 ,生成jar包位置,mf文件书写等问题
- maven打jar包同时添加MANIFEST.MF文件中Class-Path所有需要jar
- Jar内外配置文件的读取public class JarReader { public static void main(String[] args) { String jarPath = "C
- MANIFEST.MF文件Class-Path:节点需要引入的jar太多解决方案
- jar包读取jar包内部和外部的配置文件
- Spring Boot 将第三方依赖和配置文件打包在jar外部并引用
- Java GUI项目读取Jar内部外部文件 打包EXE 在没有java环境的电脑上可运行
- Java读取classpath中配置文件的小例子
- 打包jar时Class-Path的配置方式
- java打包成jar后读取外部文件
- MAVEN插件打包SNAPSHOT包MANIFEST.MF中Class-Path带时间戳的问题
- springboot在jar包外部读取配置文件
- java 读取配置文件或者图片文件,然后打jar包的问题
- eclipse的项目和配置文件 .project .cproject .classpath .metadata
- jar读取外部的配置文件如perperties