附錄 B |
|
此附錄描述如何從指令行操作 Sun JavaTM Wireless Toolkit for CLDC,並詳述生成和執行應用程式所需的步驟。此外,還描述 Sun JavaTM Wireless Toolkit for CLDC 的憑證管理員公用程式 (名稱為 MEKeyTool),以及 MIDlet 簽署公用程式 (其名稱為 JadTool) (Java Application Descriptor Tool)。
從指令行生成和執行應用程式之前,請確認您的 Java SE 軟體開發工具組版本是 1.4.2 或更新版本。請確定您的路徑中包含 jar 指令。若要尋找開發工具組的版本,請於指令行執行 jar 指令,然後執行 java -version。
如需更多範例,請參閱示範應用程式 bin 目錄下的 build.bat 與 run.bat 兩個檔案。這些檔案位於:
toolkit 是 Sun JavaTM Wireless Toolkit for CLDC 的安裝目錄,demo 是一個示範應用程式的名稱。
如需開發 MIDP 應用程式的完整說明,請參閱第 2 章。這一節描述如何從指令行完成開發周期的每一個步驟。
在使用者介面上,生成專案只需一個步驟。但在背景,其實需執行兩個步驟。首先,Java 原始碼檔案編譯成 Java 類別檔案。接著,預先驗證類別檔案,這表示準備好類別檔案,以用於 CLDC KVM。
使用 Java SE 開發工具組的 javac 編譯器編譯 Java 原始碼檔案。您可以使用現有的 Sun JavaTM Wireless Toolkit for CLDC 專案目錄結構。您必須使用 -bootclasspath 選項,告訴編譯器使用 MIDP API,而且您可以使用 -d 選項,指示編譯器放置已編譯類別檔案的位置。
下列範例會示範如何編譯 MIDP 2.0 應用程式,把 src 目錄中的原始碼檔案,編譯成類別檔案放在 tmpclasses 目錄中。為清楚起見,每行多加了換行符號。
javac -bootclasspath ..\..\lib\cldcapi10.jar;..\..\lib\midpapi20.jar -d tmpclasses src\*.java
javac -bootclasspath ../../lib/cldcapi10.jar;../../lib/midpapi20.jar -d tmpclasses src/*.java
如果要使用工具組支援的選擇性 API,請把它們的 JAR 檔案加到 -bootclasspath 選項。
如需 javac 的詳細資訊,請參閱 Java SE 文件。
下一個步驟是預驗證類別檔案。在 Sun JavaTM Wireless Toolkit for CLDC 的 bin 目錄中有一個方便的公用程式,叫做 preverify。preverify 指令的語法如下:
preverify [options] files | directories
指定要載入其類別的來源目錄或 JAR 檔案 (以分號區隔清單)。
指定輸出類別的目標目錄。預驗證之前,此目錄必須存在。如果未使用此選項,預先驗證器會將類別放置於 output 目錄中。
在編譯範例之後,使用下列指令驗證已編譯的類別檔案。同樣為清楚起見,每行多加了換行符號。
preverify -classpath ..\..\lib\cldcapi10.jar;..\..\lib\midpapi20.jar -d classes tmpclasses
preverify -classpath ../../lib/cldcapi10.jar;../../lib/midpapi20.jar -d classes tmpclasses
執行此指令後,完成預先驗證的類別檔案會放置於 classes 目錄中。如果應用程式使用 WMA、MMAPI 或其他版本的 CLDC 或 MIDP,請確定在 classpath 中包含相關的 .jar 檔案。
若要封裝 MIDlet 套裝軟體,您必須建立一個清單檔案,再生成一個應用程式 JAR 檔案,最後建立一個 MIDlet 套裝軟體描述元。
依 MIDP 規格所指定,建立包含適當屬性的清單檔案。您可以使用任何文字編輯器,建立清單檔案。清單可能含有下列內容:
MIDlet-1: My MIDlet, MyMIDlet.png, MyMIDlet MIDlet-Name: MyMIDlet MIDlet-Vendor: My Organization MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC -1.0 MicroEdition-Profile: MIDP -2.0
建立 JAR 檔案,內含清單及套裝軟體的類別與資源檔案。若要建立 JAR 檔案,請使用 Java SE 軟體開發工具組隨附的 jar 工具。語法如下:
jar cfm file manifest -C class-directory . -C resource-directory .
例如,若要建立一個名為 MyApp.jar 的 JAR 檔案,其類別位於 classes 目錄中,而資源位於 res 目錄中,請使用下列指令:
jar cfm MyApp.jar MANIFEST.MF -C classes . -C res .
依 MIDP 規格所指定,建立包含適當屬性的 JAD 檔案。您可以使用任何文字編輯器來建立 JAD 檔案。此檔案必須使用 .jad 副檔案名。
MIDlet-Name: MyMIDlet MIDlet-Vendor: My Organization MIDlet-Version: 1.0 MIDlet-Jar-URL: MyApp.jar MIDlet-Jar-Size: 24601
您可以從指令行執行模擬器。Sun JavaTM Wireless Toolkit for CLDC 的 bin 目錄包含 emulator 指令。emulator 指令的語法如下:
emulator options
-Dcom.sun.midp.io.http.proxy=proxy-host:proxy-port
-Dcom.sun.midp.midlet.platformRequestCommand=browser
emulator -Dcom.sun.midp.midlet.platformRequestCommand=firefox -Xjam:install=URL-to-app-using-platformRequest-method
如果您希望每次都使用同樣的瀏覽器,可以將以下指令行加入至 toolkit/lib/system.config:
com.sun.midp.midlet.platformRequestCommand: 瀏覽器
Windows: 在 Windows 中,如果未指定此參數,則將使用預設瀏覽器。
Linux: 對於 Linux 則必須指定此參數,因為 Linux 系統一般沒有預設瀏覽器。如果未指定此參數,則當應用程式嘗試開啟 URL 時無任何反應。
install=jad-file-url | force | list | storageNames|
run=[storage-name | storage-number]
執行之前安裝的應用程式。應用程式是使用其有效的儲存裝置名稱或儲存裝置號碼來指定的。
remove=[storage-name | storage-number | all]
移除之前安裝的應用程式。應用程式是使用其有效的儲存裝置名稱或儲存裝置號碼來指定的。指定 all,則移除之前安裝的所有應用程式。
Sun JavaTM Wireless Toolkit for CLDC 的元件全部都可以從指令行啟動。每個元件都位於工具組的 bin 目錄中。
您可以使用 emulator 指令的 --Xprefs 選項,從指令行變更模擬器偏好。格式如下:
提供的 filename 為特性檔案的完整路徑名稱,這個值會置換偏好對話方塊中的值。特性檔案可包含下表所述特性:
從指令行也能使用 Sun JavaTM Wireless Toolkit for CLDC 完整的安全功能。您可以調整模擬器的預設保護網域、簽署 MIDlet 套裝軟體和管理憑證。
若要調整模擬器的預設保護網域,請在 emulator 指令中使用下列選項:
指定 MIDlet 套裝軟體的安全網域。網域類型包括 untrusted、trusted、minimum 和 maximum。
JadTool 是一個指令行介面,可依據 MIDP 2.0 規格,使用公開金鑰加密來簽署 MIDlet 套裝軟體。簽署 MIDlet 套裝軟體的過程,是將簽署人憑證與 JAR 檔案的數位簽名加入 JAD 檔案。JadTool 也可以簽署支付款項更新 (JPP) 檔案。
JadTool 只使用來自 Java SE 平台金鑰庫的憑證與金鑰。Java SE 軟體提供指令行工具 keytool 來管理 Java SE 平台金鑰庫。
JadTool 封裝在 JAR 檔案中。若要執行它,請開啟指令提示符號,將目前目錄切換至 toolkit\bin,然後輸入下列指令:
java -jar JadTool.jar command
將指定金鑰庫中金鑰組的憑證加入 JAD 檔案或 JPP 檔案中。
將指定 JAR 檔案的數位簽名加入指定的 JAD 檔案中。-jarfile 的預設值是 JAD 檔案中的 MIDlet-Jar-URL 特性。
將輸入 JPP 檔案的數位簽名加入指定的輸出 JPP 檔案中。
MEKeyTool 用於管理憑證授權單位 (CA) 的公開金鑰,因此在功能上類似 Java SE SDK 隨附的 keytool 公用程式。使用金鑰有助於透過 SSL 進行安全的 HTTP 通訊 (HTTPS)。
使用 MEKeyTool 之前,您必須先具備 Java Cryptography Extension 金鑰庫的存取權。您可以使用 Java SE keytool 公用程式建立一個。
http://java.sun.com/javase/6/docs/technotes/tools
/windows/keytool.html
http://java.sun.com/javase/6/docs/technotes/tools
/solaris/keytool.html
若要執行 MEKeyTool,請開啟指令提示符號,將目前目錄變更為 toolkit\bin,然後輸入下列指令:
隨後為指令關鍵字。請注意,當 MEKeyTool 從安裝目錄執行時,預設鍵以及您所建立的鍵將在您的個人目錄 workdir\appdb 中常駐。
使用指定的 Java Cryptography Extension 金鑰庫密碼,將公開金鑰從指定的 JCE 金鑰庫匯入 ME 金鑰庫。預設 ME 金鑰庫是 workdir\appdb\_main.mks,而預設 Java Cryptography Extension 金鑰庫是 user.home\.keystore。
列出 ME 金鑰庫中的金鑰,包括各金鑰的所有者與有效期限。ME 金鑰庫是 workdir\appdb\_main.mks。
從指定所有者的指定 ME 金鑰庫中刪除一個金鑰。ME 金鑰庫是 workdir\appdb\_main.mks。
備註 - Sun JavaTM Wireless Toolkit for CLDC 包含一個名稱為 _main.mks 的 ME 金鑰庫,位於 appdb 子目錄中。此金鑰庫包含預設 Java SE 平台金鑰庫中存在的所有憑證 (此金鑰庫隨附於 Java SE SDK 的安裝中)。 |
行動用戶端可以使用 Stub 產生器存取 Web 服務。wscompile 工具會產生在 XML (JAX) RPC 用戶端與服務中使用的 Stub、Tie、Serializer 與 WSDL 檔案。此工具會讀取配置檔案,該檔案可指定 WSDL 檔案、模型檔案或編譯的服務端點介面。Stub 產生器的指令語法如下:
wscompile [options] configuration-files
表格 B-4 列出可以跟在 -f 選項後面的功能 (以逗號分隔)。wscompile 工具會讀取 WSDL 檔案、編譯的服務端點介面 (SEI) 或模型檔案做為輸入。[檔案類型] 欄說明哪些檔案可以與特定功能共同使用。
wscompile -gen -d generated config.xml wscompile -gen -f:nounwrap -O -cldc1.1 -d generated config.xml
Copyright © 2007, Sun Microsystems, Inc. 版權所有。