Java一个小应用项目打包心得

来源:互联网 发布:穿越火线弹道优化 编辑:程序博客网 时间:2024/06/05 07:35

 

 

首先看一下项目结构:

图片

说明:

1、其中com.yp.jars里面放了mssql驱动和jdom的jar包。

2、可以看到resources资源文件夹里有三个文件,其中sysTray.jpg是当程序缩小到系统托盘时显示的图标,databases.xml是数据库配置文件。

 

难点阐述:

在com.yp.base包里有一个类文件ConnectionFinder.java和com.yp.client包里有一个类文件YPEnglishClient.java  他们在程序运行的时候需要读取到上面我们说的sysTray.jpg和databases.xml文件,当你在eclipse里编写与测试的时候一切正常,而一旦打包好之后程序就不能正常运行。经过研究发现原来是当程序打包好就变成了一个*.jar的文件,自然读取不到我们要的那两个文件。解决办法就是当程序打包好之后,把包含这以上我们要读取的两个文件的文件夹resources,放到与项目打包好之后的*.jar文件同级目录中。

这里还要进一步说明的是,文件我放好了,那程序里读取文件的代码该如何写呢,这里我将源代码复制上来,如下:(基本原理就是设法读取到项目文件路径)

ConnectionFinder.java  文件中的代码:

String filePath=System.getProperty("user.dir")+"/resources/databases.xml";//项目路径加文件路径

Document doc=builder.build(new File(filePath));

 

YPEnglishClient.java  文件中的代码:

String filePath=System.getProperty("user.dir")+"/resources/sysTray.jpg";//项目路径加文件路径

trayIcon=new TrayIcon(ImageIO.read(new File(filePath)));//设置托盘的图标

 

其中的System.getProperty("user.dir")就是去的项目的路径

 

实际的打包步骤如下:

第一步:安装fat jar

       下载地址:http://sourceforge.net/project/showfiles.php?group_id=115990&package_id=125924 解压缩后是一个net.sf.fjep.fatjar_0.0.31文件夹,把其中plugins下面的net.sf.fjep.fatjar_0.0.31.jar文件夹拷贝到eclipse的plugins下,重新启动Eclipse3.1,Windows=>prefernce=>fat jar preference看到他就说明已经安装成功了。如果没有看到,没有关系,删除D:/eclipse310/configuration/org.eclipse.update/platform.xml文件(此文件可以自动生成)不用担心以前的插件会因此而消失,没事。

第二步:开始打包

       右键项目选择Export(导出)=>Other=>Fat Jar Exporter   如图:图片

 


点击next,选择你要打包的项目。出现提示框,如图:

 

图片

 

解释:

1、use extern Jar-Name 勾选上之后点击右边的Borwse按钮可以选择项目外的路径,否则打包的程序会在项目文件夹里面。在这里,我勾选上了。

2、select Manifest file 是指的清单文件,里面应该写的是打包的文件信息。但是由于我不知道怎么写清单文件类容。如果未选择它。

3、Main-Class 选择程序入口的main方法

4、One-JAR 这个是最关键了,应为我想把我的项目就打包成一个jar文件,拿到哪里都能用,所以我勾选上了.

5、点击Finish完成。

6、找到打包好的文件,在相同目录中新建一个文件夹resources(与项目中的resources资源文件夹同名),然后将项目中的resources的databases.xml和sysTray.jpg两个我们要用到的文件拷贝到这个新建的resources文件夹中。

7、一切完成~~开心ing……

原创粉丝点击