終於需要好好學習J2ME的使用了, 剛學Java時編譯運行程序都是在命令行下進行, 所以這次我也打算從命令行下開始. 恰好找的一本書《J2ME in a nutshell》中第一個實例是命令的, 於是開始下載新版本的J2ME
開發工具, 准本從此大干一場. 問題就處在這新版本上了, 下載完後和書中介紹的情景一比較, 大有"物是人非"的感覺. 怎麼KVM不見了啊! 這程序可怎麼跑? 而且書上classpath指定的那些目錄根本不存在, 沒法編譯. 這書是太老了, 雖然是經典的"in a nutshell"系列數據, 現在學起來顯然已經不合時宜, 挑些基礎內容看看吧. 至於命令行嘛, 根據以往經驗, 書中的classpath要麼是換目錄了要麼是換成什麼JAR文件了, WTK裡面的lib目錄下就一堆的JAR文件, 上網一查果然, 編譯和預校驗順利通過. 可運行實在沒頭緒, 網上找半天也沒找到KVM到那裡去了, 不知道有沒有哪位大俠知道. 好在運氣不錯, 在WTK的aPPS實例目錄下, 發現這些實例的bin目錄下大多有bat文件, 這下可以運行了, 但還是沒找到KVM在哪, 得靠模擬器來運行MIDlet, 看來KVM是被SUN藏起來了. 心有不甘那, 總覺著應該有更簡單的方法.
其實用WTK中自帶的簡潔的圖形工具可以很容易地編譯、打包、運行, 所以下面說的編譯運行過程僅作參考, 知道就好, 沒事別這麼弄, 開發效率還是很重要的.
編譯運行過程(以WTK2.5中Games實例的build.bat和run.bat為例, 列出主要部分):
1、編譯: %JAVAC% -bootclasspath %CLDCAPI%;%MIDPAPI% -d ..\tmpclasses -classpath ..\tmpclasses %JAVA_FILES%, 由兩個百分號表示的bat變量分別表示: Java源文件編譯器Javac、CLDC及MIDP執行文件的路徑(在WTK2.5中位於lib目錄內,可以是cldcapi10.jar、midpapi10.jar等, 當然MIDP也可以換成其他Profile的實現)、目標源文件.
2、預校驗: %PREVERIFY% -classpath %CLDCAPI%;%MIDPAPI%;..\tmpclasses -d ..\classes ..\tmpclasses, bat變量含義與上面一樣.
3、打包: 生成JAR文件(%JAR% cmf MANIFEST.MF %DEMO%.jar -C ..\classes .), 或更新JAR文件(%JAR% uf %DEMO%.jar -C ..\res .)
4、運行: 要求具有MIDlet的JAD(Java Application Description)描述文件, 和上面的MANIFEST.MF文件一樣, 如果不大算用工具的話, 可以手工編寫, 相關內容可以借鑒實例或網上查找. 之後就可以輸入mulator -Xdescriptor:..\aPPS\%DEMO%\bin\%DEMO%.jad 在模擬器中運行程序了