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程式,完整安裝包大約 4MB 。
而且,在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檢驗這個樣本