一、引言
最近有朋友推薦能否寫一些有關J2ME編程方面的文章。心想最近正好有心把自己工作所學整理一下,那天又在網上看到有人詢問這方面的教程,于是便答應了,既能把心中所學系統地歸納一下,也希望能給一起愛好和學習J2ME的朋友和同道們一點借鑒,只是不足之處,還望包涵包涵!
二、J2ME介紹
J2ME, 簡稱java 2平臺,袖珍版(Java 2 Platform,Micro Edition (J2ME)),是sun公司在J2SE和J2EE之后,致力于消費產品和嵌入式設備的最佳解決方案。J2ME將所有的嵌入式裝置大體上區分為兩種:一種是運算功能有限、電力供應也有限的嵌入式裝置(比方說PDA、手機); 另外一種是運算能力相對較佳、并請在電力供應上相對比較充足的嵌入式裝置(比方說冷氣機、電冰箱、電視機上盒(set-top box))。因為這兩種區分,所以Java引入了一個叫做Configuration的概念,然后把上述運算功能有限、電力有限的嵌入式裝置定義在Connected Limited Device Configuration(CLDC)規格之中; 而另外一種裝置則規范為Connected Device Configuration(CDC)規格。也就是說,J2ME先把所有的嵌入式裝置利用configuration的概念區隔成兩種抽象的型態。MIDP 層,移動信息設備框架(Mobile Information Device PRofile(MIDP)),是一個 Java API 集合,它處理諸如用戶界面、持久存儲和聯網這樣的問題。J2ME CLDC的先決條件是一個緊縮的JVM,稱為K 虛擬機(K Virtual Machine(KVM))。KVM是為小存儲器、資源受限的網絡連接設備設計的。
三、發展趨勢
在我們今天的生活中,個性化的智能信息用品已經是必需品。這些用品包括移動電話、雙向尋呼機、智能卡、個人電腦記事本(personal organizer)和掌上電腦(palmtop)。它們的趨勢是成為目的特定的、資源有限的網絡連接設備,而不是我們迄今已知的通用臺式機。專門滿足這一巨大的消費空間,Java 2平臺袖珍版(J2ME) 提供了極多的創新Java技術。而其應用于手機就是最有說服力的證明之一。Nokia、motorola、siemens等世界各大手機廠商已經開發出多款支持J2ME的手機型號,而市場潛力呢?以中國為例,據調查,中國的移動用戶將近3億(http://arch.pconline.com.cn/news/dxgd/10211/108337.html),如此龐大的基數,可見其強大的需求量。
四、J2ME開發配置
在我們對J2ME有了初步的了解之后,心里有個底,就應該開始J2ME程序開發了。工欲善其事,必先利其器,學J2ME還得從配置開始的。不然helloWord都不知道怎么弄的。這里,我主要以nokia模擬器為例,說一下wtk+nokia的配置和jbuilder+mobileset+nokia的配置。
4.1 nokia模擬器配置:sun J2ME Wireless Toolkit+ nokia 7210
1、先安裝wtk,相關資源可到http://www.cnjm.net上下載,本例假設安裝在c:
2、然后將nokia模擬器安裝在wtk的device目錄(c:/J2MEwtk/wtklib/devices)
3、打開wtk目錄下的bin目錄下的ktoolbar.exe 或者ktoolbar.bat, 就會出現wtk的運行界面(打開ktoolbar.bat的同時會出現一個dos窗口),我們主要使用第二排的六個按鈕:
a New project
作用: 新建一個J2ME項目,會要求你輸入項目名和該項目的MIDlet主類。完成后,你就建立了一個新的J2ME項目啦。你會在apps(c:/J2MEwtk/apps)目錄下發現你的新建項目的文件夾。在這個文件夾(你的項目名命名)里,有四個文件夾(bin,lib,res,src)。
Bin文件:這里用來保存結果文件的目錄,有jar,jad和MF文件。
JAR包文件(JAR File):java 壓縮文件包,里面包含該MIDlet項目所需要的所有class文件和資源文件;
描敘文件(Descriptor File,jad文件)文件用來描敘一個MIDlet Suite之基本資料,以及該MIDlet Suite內所包含的MIDlet相關信息,比如類別名稱、圖示、程序名等的內部文件(存儲在jar文件內部);
清單文件(nifest File,MANIFEST.MF):作用和內容jad文件差不多,都是描敘MIDlet項目的文件,不同在于它不包含于jar文檔src 文件夾: 放置java源文件
res 文件夾: 放置資源文件bin 文件夾: 放置目標文件,如jad、mf、jar文件
b Open project
作用:打開一個已經存在的項目,然后你會發現其他如setting、build、run、device選項才由灰色(不可使用)轉為黑色。
c setting
對一個已經打開的項目,進行一些基本的設置。這些設置信息保存在jad描敘文件中。這些信息對您的項目來說是非常重要的,點擊setting按鈕,在setting對話框,有四個選項欄:
required: 這是必須要求填寫的信息,有些信息是有wtk自動生成的,不過在實際項目中通常需要你進行修改,這里只簡單介紹幾個常用的變量:MIDlet-jar-size是指該jar文件的大小; MIDlet-jar-URL是指該jar文件的當前地址,默認就是jar文件名,說明的是它和jad文件是在當前默認同一路徑下,以后如果你的MIDlet作品在OTA(Over The Air,意指從網絡下載MIDlet程序)服務器上發布的時候,這里你的MIDlet-jar-URL就需要修改了,改成該jar的url形式地址,比如:http://
ota.com.cn/path/yourjar.jar; MIDlet-Name是指該MIDlet項目主類名字。
MIDlet-vonder一般指向公司名字。值得注意的是在這些信息,是大小寫相關的。
Optional: 這里是一些可選可不選的信息,比如項目的Icon,文字描敘等。
這里就不作詳細的介紹了,自己可查相關資料。
User defined: 這里是你在程序中自己從外部定義的一些變量,他們是key-value類型的,比如你定義:key:Key007,value:Value007(注意大小寫)。那么你在程序中就可以使用MIDlet的getAppProperty("Key007")取得一個。
String:Value007
MIDlets: 這里最常用的設置Icon,這個Icon就是在手機游戲菜單出現的圖片,如果需要刪除或者修改,點擊下面的edit按鈕和remove按鈕即可。
好,現在就可以用wtk+nokia來做J2ME程序了。用這種配置做程序,對于使用過其他語言編程的人來說,開始還是比較簡單實用的。在src目錄下新建你的Java類,如果你的J2ME程序使用圖片或者其他的數據,就放到res目錄下。程序寫好后,在device下拉框選擇你的模擬器,點擊wtk的build按鈕,如果沒有出現錯誤,就run,ok,很簡單吧!簡單的東西,當然有缺陷。這里你可以使用記事本作為編輯器,ultra edit ,或者Jcreator等作為編輯器,我推薦使用Jcreator,它會為你在編譯程序中提示錯誤,當然還需要配置,就是把nokia的包加入編譯路徑。但是,還有一種集成開發工具可以更方便的編譯,debug,運行J2ME程序,就是我馬上要說到的Juilder+mobileset。
4.2 Jbuilder+mobileset+nokia配置
1、安裝好Jbuilder8(這里以Jbuilder8為例,Juilder7也可,Jbuilder9已經集成了mobileset)。
2、然后安裝mobileset3.0,在安裝之后,Jbuilder根目錄下,你會發現多了一個J2MEwtk文件夾,不用說,這就是sun公司的wtk工具。你會在Files->new,就會看到多了一個micro頁面,就對了。
3、安裝nokia 7210模擬器 ,這里建議選擇安裝如4.1安裝在jwtk的device目錄下。
4、配置Jbuilder
好了,打開Jbuiler,當然要注冊啦。首先,在菜單欄上,選擇option->configure JDKs,就會發現,左欄窗口有一個J2ME Wireless Toolkit 1..0.4.01,這就是上面說到的wtk啦,ok,選擇它。如果你想用它來編譯基于nokia 7210模擬器的手機程序,還要在右下那個class大白框中添加nokia編譯使用的api包。選擇add按鈕,在select one or more derictorys對話框下選擇你的nokia模擬器的安裝目錄下的lib包里的classes.zip加上,就ok了。然后在micro頁面選擇你的模擬器,這里是nokia 7210模擬器。
5、然后,新建一個project,輸入項目名,選擇項目的安置地點,就finished。現在Files->new,選擇micro頁面的MIDlet, 即新建一個MIDlet類。一般來說,在MIDlet向導欄中,輸入MIDlet名字和包名,(如果不需要包,則置空)。還有一種方法是,在你的項目目錄下將會有src目錄,你可以先在src目錄下(如果沒有,自己建立src目錄即可,如果有,拷貝即可)建一個Java文件,作為你這個項目的主類名,即MIDlet.。
注:如果有項目源代碼,可以直接拷貝源代碼放到src目錄就可以了。
現在來配置一下Jbuilder的如何使用nokia模擬器。
打開Jbuilder,tools->configure jdk, 在該對話框中,選擇jdk為J2ME wireless toolkits,點擊OK。
如果你在Files->new, 對話框選擇micro新建MIDlet類,Jbuilder會為你自動創建好它的配置。如果你不是這么做,就有必要自己設置了。在Jbuilder里面,選擇該項目,打開菜單欄project->project properties,在project properties屬性對話框里,在path 頁面,JDK一項,點擊后面的按鈕,選擇一個jdk, 這里選擇J2ME Wireless Toolkit 1.0.4.01,然后確定; 點擊run頁面,如果如果是第一次用,就會是空白,這時選擇new按鈕,出現一個對話框,這是非常重要的一個配置對話款。詳細配置說明如下:
//n7210_jme_sdk_v1_0
Name //可以寫上你的project name
在run頁面,
Type //這里是指明你的項目類型是什么,下拉會看到有一個MIDlet選項,(如果
//你沒看到,就是安裝mobileset出現了錯誤,請重新安裝。)
如果你選擇了MIDlet,就會看到下面的頁面發生了變化,這里我們只需要設置兩項
Main class //選擇項目的主類,在brower和search都可以找這里選到主類名,如果沒有,
//自己在項目的src目錄下建立一個主類java文件
Emulator device //就是選擇你要使用的模擬器,選擇nokia模擬器
現在設置已經完畢!你可以測試一下啦!好,接著看。
4.3 測試配置是否成功
打開剛才新建的項目,也許你會發現一個displayable.java,我建議你可以把這個Java類刪除,只剩下一個主MIDlet類,修改如下:
1、 刪除
private Displayable2 displayable = new Displayable2();
2、使用以下代碼
Form from= new Form("HelloWorld",null);
Display.getDisplay(this).setCurrent(displayable);
代替
Display.getDisplay(this).setCurrent(displayable);
Ok,就這么簡單,編譯,運行,就會彈出紅色的nokia模擬器界面,最終會出現一個叫HelloWorld的空的Form界面。恭喜你,你成功了!
注:1、如果你使用jb做J2ME項目,如果需要使用圖片或者其他資源,需要把這些資源文件放到classes文件夾中就行了。
2、如果出現異常或者編譯錯誤,就是你上面的配置出現了錯誤。請打開你的project properties, 重新檢查你的設置,主要看jdk配置,run的配置。
五、關于J2ME程序的開發
開發J2ME程序,需要扎實的Java基本功。J2ME本身包括的東西并不是很復雜,它的很多接口和方法都是J2SE的微型版和簡化版。它具備簡單的繼承關系,既有基本的ui高級組件,也有相對自由的Canvas。
它獨具特色的是它的微型數據庫RMS。所有這些,只需要你用心的了解和研究,都會有收獲的。限于篇幅,這里不再詳細講解具體的J2ME編程。
六、關于J2ME的后話
其實,個人認為J2ME的程序開發相對來說是比較容易的,只要具備基礎的Java知識,然后對J2ME的API熟悉之后,就會很容易上手,而最難的就是開始的學習。包括配置、編譯、運行,我在初學的時候深有體會(開始一直是自學)。所以,我寫下了這些基本的東西,希望能給同道們一些幫助。
目前J2ME最流行的就是做手機游戲方面,目前我就是一直從事這方面的工作和研究。但我認為J2ME的前景會非常廣泛,并且不會只局限于游戲,移動應用軟件也是其一個非常重要的方面。隨著科技的發展,kvm也有很大的進步,隨之發展的肯定就是J2ME的應用限制的擴展。
新聞熱點
疑難解答