1、编辑清单MANIFEST.MF
(1)Eclipse 提供了用于打包项目的“导出”向导,但本例运行此向导之前先需要创建
一个MANIFEST.MF 清单文件,其内容如下:
Manifest-Version: 1.0
Main-Class: book.chapter_4.wizard_dialog.WizardDialog1
Class-Path: ./lib/swt.jar ./lib/jface.jar ./lib/runtime.jar
其写法格式,参考
Eclipse -- 打包 -- MANIFEST.MF 规则。
(2)将清单文件保存下来,建议放在项目的根目录下。
它的文件名可以任意取,
本例取名为manifes.txt,Eclipse 向导在打包时会自动的将manifes.txt 的内容复制到JAR 包
的META-INF 目录下的MANIFEST.MF 文件中。
2、使用Eclipse“导出”向导来打包项目
(1)右键单击myswt 项目的项目名,在弹出菜单中选择“导出”。在弹出的如下图
所示的对话框中,选择“JAR 文件”,单击“下一步”。
(2)如下图 所示,将右边不需要的文件都取消勾选。在“选择导出目标”项文本
框中设置JAR 包的输出路径和包名(可以任意取名)为“D:\myswt_application\myswt.jar”。
接受其他的默认设置不变,单击“下一步”。
附注:左边虽然选择了src 目录,但源文件并不会导出到包中,除非勾选了“导出Java
源代码文件和资源”项。
(3)如下图 所示,接受默认设置不变,单击“下一步”。
(4)这一步较关键。如下图7.4 所示,选择“从工作空间中使用现有清单”项,将创
建的清单文件输入,也可以通过旁边的“浏览”按钮来选择清单文件。输入清单文件后,单
击“完成”,Eclipse 开始将项目打包。
经过以上四步后,在“D:\myswt_application”路径下生成了一个名为“myswt.jar”的文
件。myswt.jar 是一个ZIP 格式的压缩文件,可以用WinRAR 或WinZip 软件打开,也就是说
用这两个软件也可以替代Eclipse 向导来打包文件。如果用WinRAR 来打包文件,则压缩格
式要选择ZIP 格式而非RAR 格式,压缩率倒可以任意选。
3、复制Java 应用程序的支持包及本地化文件
4、编写运行myswt.jar 包的批处理程序“run.bat”
在myswt_application 目录下创建一个批处理程序run.ba(t 名字任取,扩展名必须是bat),
其内容仅一句语句,如下:
javaw -jar myswt.jar
说明:
javaw 对应c:\jdk\jre\bin\javaw.exe 文件,如果windows 提示命令未发现,
则需要将c:\jdk\jre\bin 路径加入到windows 环境变量path 中。
在运行程序的时候有一个讨厌的黑色命令行窗口,要去掉它,可以将run.bat 内容
更改如下:“start javaw -jar myswt.jar”,start 是指调用了windows 的“运行”命
令。
如果想将swt-win32-3063.dll 也放在单独的目录中,如
“D:\myswt_application\native”目录,则需将run.bat 内容更改为:
start javaw -Djava.library.path=./native/ -jar myswt.jar
5、
让用户电脑不必安装JRE环境
通常运行Java 程序有个前提条件:用户电脑必须先安装JRE 环境。虽然安装JRE 环境
非常简单,但毕竟多了一步,算是有一点点的瑕疵。这里给出一个不必让用户安装JRE 环
境的方法,其实现步骤如下:
(1)将原JDK 中的“jre”目录复制到“D:\myswt_application\java1.4.2”目录下(java1.4.2
也可换成其他名称)。
(2)将JDK 和JRE 从本机卸载掉,这样表示本机没有安装JAVA 运行环境。
(3)修改批处理文件run.bat 中的命令为“start java1.4.2\jre\bin\javaw -jar myswt.jar”,
仅仅是在javaw 前加上了一个相对应路径。
双击run.bat 即可在不安装JRE 环境的电脑运行此Java 应用程序。
6、
抛弃批处理文件(*.bat)
用批处理文件运行程序似乎不够专业,虽然它足以完成运行任务。但习惯就象一种毒药
一旦染上就很难摆脱它的影响,Windows 统治下的人们早已经习惯运行扩展名是EXE 的程
序,用*.bat 他们就会感觉别扭。
我们可以用一个叫JavaLauncher 的免费小程序来代替批处理文件去运行Java 程序。
在上图的目录中
source 目录包含了JavaLauncher 的源程序,是用C 语言写的
changes.txt 是新版的修改说明
launch.exe 是主程序
launcher.cfg 是配置文件
readme.txt 是一些说明和示例
我们只需要launch.exe、launcher.cfg 两个文件,将这两个文件复制到打包文件所在的目
录。launcher.cfg 是一个仅三行内容的文本文件,将它修改如下:
.
.\java1.4.2\jre\bin\javaw.exe
-jar myswt.jar
第一行设置指向JAR 包myswt.jar 的目录,由于launch.exe 和myswt.jar 同
在一个目录,所以用“.”即当前目录。
第二行设置指向jre\bin\javaw.exe 的路径。在上一小节(7.1.4 节)已将jre 目
录复制到了java1.4.2 子目录中。
配置好launcher.cfg 后,双击launch.exe 即可运行java 应用程序。
如果仔佃研究eclipse 的启动方式,发现eclipse 和JavaLauncher 的原理一样:eclipse.exe
相当于launch.exe,startup.jar 相当于myswt.jar。只不过eclipse.exe 不象launch.exe 要具有通
用性,所以它没有*.cfg 这样的配置文件,而是将启动信息固化在eclipse.exe 中。
7、美化图标
launch.exe 文件的图标太单调了,让我们给它换个好看点的。换程序的图标需要用到一
个免费的软件:Resource Hacker
(1)运行Resource Hacker。
(2)单击主菜单“文件→打开”,将launch.exe 载入到程序中
(3)如上图,选择左边的“图标→1→1030”,然后右键单击“1030”项,选择“替换
资源…”。如下图7.16 所示,在弹出窗口中单击“打开新图标文件”,选择一个满意的图标,
然后单击“替换”按钮。
附注:图标文件可以是exe、dll、res、ico,该软件可以从exe、dll、res 抽取出图标,本
例选择的是java 的一个图标文件JavaCup.ico。
(4)如下图 所示,选择“文件→另存为”,取名myswt.exe。
(5)最后的目录如下图7.18 所示,可见myswt.exe(也就是launch.exe 改了个名称)的
图标换成了Java 的图标。双击myswt.exe 即可运行Java 应用程序。
8、最后的打包
发送给用户之前,通常要用WinZip 或WinRAR 将所有的文件全部打成一个压缩包,然
后用户得到这个压缩包后,将其解压缩后即可运行程序,Eclipse 软件就是这种方式。
另一种方式是用InstallShield、InstallAnyWhere 这样的安装程序制作软件来创建一个单一的
setup.exe 文件,它具有向导式的安装界面,而且还可以往windows 的程序栏插入菜单项,
关于这些安装程序制作软件的具体使用请参阅相关书籍。