Excelsior JET 介绍
1. 介绍
--------
这一个例子说明该如何转换成独立于JRE的可运行的
一个使用 SWT 代替Swing/AWT 的Java图形界面程序。
SWT 是一个开源Java图形用户接口工具箱,它独立于 AWT 和
JFC/Swing。 使用 SWT的好处, 连同其他的信息,
可在下面查找:
http:// www.eclipse.org/platform/index.html
http:// eclipsewiki.swiki.net/2
http:// www.excelsior-usa.com/jetswt.html
SWT 是一个Eclipse SDK 的部份, 你可以从下面下载:
http:// www.eclipse.org/download/index.php
使用 SWT 和 Excelsior JET,你能大大地减少
你的Java图形界面程序安装包的大小。 特别地,
如果你的程序使用 SWT 而不使用 AWT/Swing,Excelsior JET,
专业版使你能够将它编译成可运行的根本不需要JRE的程序 。
结果, 你的安装包只包括下列的成份:
- 可运行程序
- SWT本地方法 DLL 库(swt-win32-xxxx.dll)
- 一个JET运行库的子集 ( 动态链接库)
- 附助的文件 (手册,例子, 等等)。
下面的第 5 节是一个简单的 SWT程序,完全安装包大约 4兆字节 。
而且,在JetPerfect Global Optimizer的帮助下它能是更进一步减少大小。
为了扼要重述, SWT 和Excelsior JET将帮助你得到一个合理大小的程序。
使你的 程序 按规定大小制作,更不用说上好的表现和
固有的代码保护,因为代码被提前编译器编码成了本地代码。
2. 关于这个例子
--------------------
这一个这个例子是一个以 SWT 为基础,画 Mandelbrodt Set 的小程序。
下列的文件是 inclided(这个单词不知是何义):
buildjar.bat 产生 MandSet.jar 的脚本
runjar.bat 在 Java虚拟机上的运行 MandSet的脚本
buildexe.bat 把MandSet.jar转换成 MandSet.exe 的 脚本
MandSet.java 程序的Java源代码
MandSet.ico 那可运行的icon文件
MandSet.gif 标题栏的icon文件
MandSet.mf 记录将MandSet.jar转换成可运行Jar文件的列表文件
它不是本地可运行的程序 -而是
包含类的一个包文件
_MandSet.prj Excelsior JET 工程文件 (总称的)
3. 该如何建立
---------------
确定 javac.exe 和 jc.exe 在环境变量PATH中 。
假如 <ECLIPSE_HOME> 是Eclipse SDK 安装目录。
复制下列文件
<ECLIPSE_HOME>/plugin/org.eclipse.swt/ws/win32/ swt.jar
<ECLIPSE_HOME>/plugin/org.eclipse.swt/os/win32/x86/ swt-win32-XXXX.dll
到包含一个叫 " 自述文件 "的文件 的目录。 注意 XXXX 编码是
一个 SWT 版本数字,举例来说 SWT 2.135 使用 swt-win32-2135. dll。
运行 buildjar.bat 生成 MandSet.jar
你可以通过双击运行 runjar.bat 。
现在, 调整Excelsior JET文件如下:
- 在JET的控制面板中打开 MandSet.prj。
- 在显示类的一页上, 展开 " swt.jar" 节点 ( 或 " org" 节点)
直到 org.eclipse.swt.internal.awt( 或 org.eclipse.swt.awt 在
SWT 的较新版本) 包节点变成可见。
- 在 org.eclipse.swt.internal.awt/org.eclipse.swt.awt 上的右击
节点,取消 " Force into the project "选择. 这将在编译设置处去掉
AWT- SWT 桥,如此将能产生
那不需要 JRE就可运行的效果 。
- 选择文件/ 另存为...,输入 " MandSet.prj" 和点击保存。
- 关闭JET控制面板。
运行 buildexe.bat 生成 MandSet.exe 。
4. 该如何准备安装
------------------------------
运行 JetPackII, 选择在splash(不知怎么译)屏上的新建按钮。
选择新的包类型。
把 MandSet.exe 和 swt- win32- XXXX.dll 加入在文件页上的包。
选择在 JRE 页上 " 不使用 JRE" 。
在JET RT页上,选择你的程序的位置。
执行试运行操作。
最后,选择Excelsior Installer 这一项。
在 综合项 页上, 填写厂商数据 , 像是公司,产品和
版本, 而且为程序定义快捷方式。
在完成页上生成安装包。
以上就是所有的内容,现在你就可配置你的程序。
5. 包大小讨论
-----------------------
这个例子是一个小的程序。 它有几K大小。
让我们比较安装包的大小:
MandSet.jar+ swt.jar+ swt-win32-xxxx.dll,经过压缩: 1.0 MB
需要要在 目标 系统上预先安装 JRE
相同文件加上 JRE 1.3.1,不包括可选择文件,经过压缩: 6.8 MB
包括 JRE
被JET编译的 MandSet,用 JetPackII 包装: 3.6 MB
不需要 JRE
被 JetPerfect Global Optimizer 编译 的 MandSet,经过压缩: 1.3 MB
不需要 JRE
---------
关于 JetPerfect 的较多信息, 参见 " JetPerfect Global Optimizer" 的JET用户使用指南。
最后, 从../JetPerfect检验这个示例