一、編寫 Java源代碼
創建一個新目錄來保存你以後編寫的MIDlet,例如 c:\midlets,在這個目錄裡再創建一個叫myMIDlet的目錄,使用任何文本編輯器創建一個名為 simpleMIDlet.java的文件並輸入下面這一段 Java源代碼。把這個文件保存在c:\midlets\myMIDlet目錄 (或者任何你選擇的目錄)。
代碼段1
simpleMIDlet.Java
此時,先不必擔心每行代碼是做什麼用的,把注意力放在開發這一整個環節中。
二、編譯並預驗證(preverify)
現在你必須編譯這個 Java源文件並且 preverify生成的.class文件。1.編譯源代碼進入命令行形式,進入你保存文件的項目目錄,使用下面的命令編譯程序。使用下面的命令編譯程序。
avac -bootclasspath c:\J2ME\midp-fcs\classes simpleMIDlet.Java
選項 - bootclasspath C: \J2ME\midp - fcs\classes指定了 Java自舉(啟動)類文件目錄。我們必須自己指向midp類,否則javac會使用默認的JDK類庫去編譯MIDlet程序。不出問題的話,就能順利地編譯simpleMIDlet.java生成simpleMIDlet.class文件 (默認情況下,生成的.class位於 Java源文件所在的目錄)。2.預驗證類文件。
選項" -classpath C:\j2me\midp-fcs\classes;." 指定了到哪裡去尋找用於預驗證的.class文件。這包括需要用來做驗證處理的 MIDP類 (通過 c:\J2ME\midp-fcs\classes指定 )和你的類文件,它位於當前目錄 (就是"."指定的)。選項"-d." 告訴預驗證器把驗證過的類文件放在什麼地方。這一點"." 指當前目錄,即原始的類文件相同的位置。注意:前面的 preverify命令行選項將用一個新的、預驗證過的類文件覆蓋原先的類文件。你可以分兩個目錄,一個用來保存通過編譯的類文件,另一個用來保存通過預驗證創建的類文件。但是沒有經過預驗證的類文件是不能被應用程序管理器載入的。3、運行 MIDlet我們現在准備在移動設備模擬器中運行 MIDlet,如果你現在還處在命令行方式,請輸入
三、封裝MIDlet
下面我想談談封裝MIDlet的相關知識,即介紹一下 MIDlet套件以及Java檔案和應用程序描述器文件,為了說明方便,我們還將寫一個MIDlet程序並利用上面介紹的那個MIDlet程序,並創建JAR文件和JAD文件來封裝這些程序。我們還要看著如何使用 Java程序包改變我們的開發過程。最後你將學習如何從一個Web服務器上訪問 MIDlet。
MIDlet套件雖然把MIDlet封裝進 Java檔案文件(JAR)並不一定必要,但這是發布 J2ME/MIDP應用程序最常見的方法。MIDlet套件是一個MIDlet中所有的文件以及作為 MIDlet一部分的必需的資源的集合。MIDlet套件由以下幾部分組成:1、附在JAR文件中的 Java類文件, 2、描述 JAR文件內容的清單文件 3、附在 JAR文件中的資源(如圖象)和Java應用程序描述符文件(JAD) 4、應用程序管理器應用程序管理器是一個移動設備上的軟件程序,這個應用程序與具體的設備有關,並且由設備的生產商實現。它負責安裝、運行以及從設備上刪除 MIDlet,而提供錯誤處理支持。這個應用程序管理器同時還提供一個可選界面,允許用戶啟動、終止以及刪除 MIDlet。
Java檔案文件一個商品化的、封裝過應用程序通常由許多文件構成。除了 Java類以外,其他文件諸如圖像和應用程序數據即通常所說的資源,也可能是這個程序包的一部分。你把所有這些信息捆綁進一個整體,就稱為 JAR文件。除了類和資源文件,一個 JAR文件還包括描述 JAR內容的清單文件。清單文件名為 manifest.mf,儲存在 JAR文件本身中,下面這張表中列出定義在這個清單文件中的所有可用的屬性。
表 1 屬性 用途 MIDlet-Name MIDlet程序包的名稱。例如“Game Pack” MIDlet-Version MIDlet的版本號 MIDlet-Vendor MIDlet的創建者或提供商 MIDlet-Icon 應用程序管理器把這個圖標與 MIDlet-Name相關聯,這是一個圖形文件,以 PNG圖象格式儲存。 MIDlet-Description 描述 MIDlet的文本 MIDlet-Info-URL 可能提供更多MIDlet和/或供應商信息的 URL MIDlet-這些屬性並不是全部都需要,可是,沒有下面列出的這六個,應用程序管理器就會拒絕加載這個 JAR。 MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-