使用Eclipse開發(fā)J2ME手機(jī)應(yīng)用程序
什么是Eclipse
Eclipse是一個(gè)開放源代碼的、與NetBeans、Sun ONE Studio和Borland Jbuilder類似的一種基于Java的整合型可擴(kuò)展開發(fā)平臺,也是目前***的開源項(xiàng)目之一,IBM在最近幾年里也一直在大力支持該項(xiàng)目的發(fā)展,目標(biāo)是將其做成用以替代IBM Visual Age for Java(簡稱IVJ)的下一代IDE開發(fā)環(huán)境,并于2001年11月宣布投入4千萬美元資金到該項(xiàng)目的研發(fā)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。其未來的目標(biāo)不僅僅是成為專門開發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,它能擴(kuò)展到任何語言的開發(fā),甚至能成為圖片繪制的工具。
目前,Eclipse已經(jīng)開始提供C語言開發(fā)的功能插件。更難能可貴的是,Eclipse是一個(gè)開放源代碼的項(xiàng)目,任何人都可以下載Eclipse的源代碼,并且在此基礎(chǔ)上開發(fā)自己的功能插件。也就是說未來只要有人需要,就會有建立在Eclipse之上的COBOL,Perl,Python等語言的開發(fā)插件出現(xiàn)。同時(shí)可以通過開發(fā)新的插件擴(kuò)展現(xiàn)有插件的功能,比如本系列文章為了進(jìn)行手機(jī)應(yīng)用程序的開發(fā)就是通過J2ME插件的擴(kuò)展來加以實(shí)現(xiàn)的??梢詿o限擴(kuò)展,而且有著統(tǒng)一的外觀,操作和系統(tǒng)資源管理,這也正是Eclipse的潛力所在。
Eclipse的主要組成
Eclipse是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成--Eclipse Platform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),Eclipse Platform則是一個(gè)開放的可擴(kuò)展IDE,提供了一個(gè)通用的開發(fā)平臺。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開發(fā)與他人工具無縫集成的工具從而無須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開始。
Eclipse SDK(軟件開發(fā)者包)是Eclipse Platform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個(gè)具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項(xiàng)目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項(xiàng)目生產(chǎn)的軟件以 CPL發(fā)布,第三方組件有各自自身的許可協(xié)議。
特性簡介
上圖為Eclipse的軟件界面,看上去有點(diǎn)象Jbilder,但是實(shí)際操作還是更象IVJ,畢竟還是由開發(fā)IVJ的原班人馬主刀完成了Eclipse的開發(fā)。另外還值得一提的是Eclipse項(xiàng)目的參與者除了IBM以外,還有象Borland,Rational Software,RedHat,Merant等一大批業(yè)界姣姣者,這也為Eclipse的未來奠定了良好的基礎(chǔ)。正所謂好酒不怕巷子深,Eclipse剛推出不久就創(chuàng)造了6個(gè)月內(nèi)100萬次的下載記錄,還被業(yè)界推崇為工具集成平臺的標(biāo)準(zhǔn)并奪得Jolt***IDE獎(jiǎng)、JDJ編輯推薦IDE等殊榮。目前Eclipse聯(lián)盟擁有12個(gè)成員,其中包括Borland、Fujitsu、IBM、MERANT、QNX Software Systems、Rational Software、RedHat、Serena Software、SuSE、Sybase、TogetherSoft和WebGain,此外,有超過175家的工具廠商已經(jīng)或計(jì)劃在Eclipse平臺之上開發(fā)工具。那么Eclipse究竟是憑什么取得如此不俗的成績呢?下面就分別從文件存放,開發(fā)環(huán)境,編譯與運(yùn)行,版本管理以及使用插件等方面對Eclipse的各種特性作一個(gè)簡單的介紹,之后相信讀者一定不會再懷疑Eclipse的能力了。
大多IVJ的初學(xué)者都對找不到Java源代碼感到非常不適應(yīng),因?yàn)镮VJ把所有的源代碼都存儲到一個(gè)reponsitory庫文件中,想要得到文本格式的源代碼必須用Export功能從reponsitory中導(dǎo)出源代碼。使用了reponsitory的IVJ對源代碼的管理功能幾乎達(dá)到***,正是這一點(diǎn)使得許多程序員對IVJ鐘愛有加。而Eclipse雖然是將源代碼以文本方式保存,卻仍然實(shí)現(xiàn)了IVJ對源代碼管理的幾乎全部功能,并且還增加了一些新的功能,這不能不說是Eclipse的一個(gè)亮點(diǎn)。
在Eclipse的安裝目錄下會有一個(gè)workspace文件夾。每當(dāng)新建一個(gè)項(xiàng)目,都會在該目錄中產(chǎn)生和項(xiàng)目同名的文件夾以存放與該項(xiàng)目相關(guān)的全部文件。將已有的文件加入到一個(gè)項(xiàng)目中目前有三種方式:***種是象在IVJ中的一樣,用IDE的"文件"菜單中的"導(dǎo)入"功能將文件導(dǎo)入到項(xiàng)目中。這也是推薦的方式。第二種是從Windows的資源管理器中直接拖動(dòng)文件到項(xiàng)目中。第三種就是直接將文件拷貝到項(xiàng)目文件夾中,然后在Eclipse的資源瀏覽窗口中選擇項(xiàng)目或文件夾并執(zhí)行從本地刷新功能。需要說明的一點(diǎn)是,項(xiàng)目文件夾可以放在計(jì)算機(jī)的任何位置,并且可以在Eclipse中用新建項(xiàng)目的方法將項(xiàng)目路徑指定到已經(jīng)存在的項(xiàng)目文件夾,然后在Eclipse中刷新即可。但要注意的是,任何項(xiàng)目文件夾建立或指定,目前都只能在Eclipse中用新建項(xiàng)目的方法來實(shí)現(xiàn),即使是在缺省存儲項(xiàng)目文件夾的workspace路徑下新建立一個(gè)文件夾,在Eclipse環(huán)境中也是無法將它變成一個(gè)項(xiàng)目,也就是說,這個(gè)文件夾對Eclipse是不可視的。
與IVJ一樣,Eclipse開發(fā)環(huán)境也被稱作工作臺,主要由三部分組成:視圖、編輯窗口和觀察窗口。下圖為工作臺的關(guān)系結(jié)構(gòu)略圖:
可以看出工作臺包含多個(gè)視圖,而每個(gè)視圖又包含不同的窗口。每個(gè)編輯窗口有很大的共性,而且缺省情況它們都在同一區(qū)域中顯示。所有文件的顯示和編輯都包含在編輯窗口里。缺省情況下打開的多個(gè)文件以標(biāo)簽形式在同一個(gè)窗口中排列,可以用拖動(dòng)方式將這些文件排列成各種布局。當(dāng)有文件被加入到項(xiàng)目中后,在資源瀏覽或Java包瀏覽窗口雙擊文件,Eclipse就會試圖打開這個(gè)文件:其中Eclipse內(nèi)嵌的編輯器能缺省打開一些文件,如*.java,*.txt,*.class等。如果是其它類型的文件,Eclipse會調(diào)用操作系統(tǒng)相應(yīng)的缺省編輯器打開,如word文檔,PDF文件等。同時(shí)Eclipse也可以象IVJ一樣用指定的編輯器打開相應(yīng)的文件。Eclipse還提供了只顯示所選單元的代碼顯示切換功能,這在編輯Java程序的時(shí)候可以以方法為單位進(jìn)行編輯,不僅代碼的顯示更加簡捷,而且還有助于編寫封裝性更好的類。
瀏覽窗口和Java瀏覽窗口是觀察窗口核心部分。前者和Windows的瀏覽器差不多,能瀏覽項(xiàng)目文件夾中的所有文件,后者用來瀏覽項(xiàng)目中的Java包,包中的類,類中的變量和方法等信息。在Java瀏覽窗口中可以通過用鼠標(biāo)右鍵菜單打開層次瀏覽窗口,這個(gè)窗口非常實(shí)用,它能非常清晰的查看類的層次結(jié)構(gòu)。類中的編譯出錯(cuò)信息可以在任務(wù)窗口中查到,同時(shí)它也可以成為名符其實(shí)的任務(wù)窗口:向其中添加新的任務(wù)描述信息,來跟蹤項(xiàng)目的進(jìn)度??刂婆_則主要用來顯示程序的輸出信息。在調(diào)試程序的時(shí)候,會有更豐富的觀察窗口來幫助程序員進(jìn)行調(diào)試,如變量值察看窗口,斷點(diǎn)窗口等等。
觀察窗口是任何IDE開發(fā)環(huán)境的核心,Eclipse也提供了豐富的觀察窗口,不過要真正用好這些窗口恐怕還要經(jīng)過一段時(shí)間的練習(xí)。
至于視圖,實(shí)際是包括一個(gè)或多個(gè)編輯窗口和觀察窗口。在開發(fā)環(huán)境的最左側(cè)的快捷欄中的上部分顯示的就是當(dāng)前所打開的視圖圖標(biāo)。視圖是Eclipse的最靈活的部分,可以自定義每個(gè)視圖中包含的觀察窗口種類,也可以自定義一個(gè)新視圖。在Eclipse的Java開發(fā)環(huán)境中提供了幾種缺省視圖,如資源視圖、Java視圖、調(diào)試視圖、小組同步視圖等等。每一種視圖都對應(yīng)不同種類的觀察窗口??梢詮牟藛螜谥械?打開透視圖"看到與該視圖對應(yīng)的觀察窗口。當(dāng)然,每個(gè)視圖的觀察窗口都是可配置的,多樣化的視圖不但可以幫助程序員以不同角度觀察代碼,也可以滿足不同的編程習(xí)慣。
IVJ具有非常強(qiáng)大的調(diào)試功能,有多種跟蹤方式,斷點(diǎn)設(shè)置,變量值察看窗口等。這些在Eclipse中都也有提供。而且會根據(jù)所安裝插件的不同而存在多種運(yùn)行/調(diào)試程序的方式。
Eclipse還提供了強(qiáng)大的個(gè)人版本管理機(jī)制,每一次被保存的更改都可以得到恢復(fù)。而且可以精確到每一個(gè)方法的版本恢復(fù)。操作也十分方便,在任何一個(gè)能看到所要操作文件的觀察窗口都可以按照用戶的需求找到相應(yīng)的版本。強(qiáng)大的個(gè)人版本管理功能為程序員提供了更多的信心:只管編下去,因?yàn)槿魏尾恍⌒牡腻e(cuò)誤都是可以恢復(fù)的。Eclipse缺省為版本管理工具CVS提供了接口,可以非常方便的連接到CVS服務(wù)器上。通過CVS版本管理,Eclipse可以為團(tuán)隊(duì)開發(fā)提供良好的環(huán)境。
至于Eclipse***的閃光點(diǎn)--強(qiáng)大的插件加載功能在文章開始就有詳細(xì)的介紹,這里就不在贅述。
小結(jié)
正是由于Eclipse的種種優(yōu)秀特性,使得Eclipse在眾多整合型開發(fā)平臺中脫穎而出。成為不少從事手機(jī)軟件開發(fā)的程序員的***開發(fā)工具。限于篇幅,本篇文章僅從多個(gè)方面對Eclipse作了一個(gè)大體的介紹,至于Eclipse軟件的獲取方式、環(huán)境配置方法等具體技術(shù)細(xì)節(jié)將在下一篇文章中進(jìn)行詳細(xì)介紹。
【編輯推薦】