服務(wù)器在編程中的應(yīng)用_第1頁
服務(wù)器在編程中的應(yīng)用_第2頁
服務(wù)器在編程中的應(yīng)用_第3頁
服務(wù)器在編程中的應(yīng)用_第4頁
服務(wù)器在編程中的應(yīng)用_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、注意用戶名和口令直接填Windows的用戶名和口令,然后選中“Validate Connection on Finish”,點(diǎn)擊Finish完成: 首先,我們要將一個(gè)現(xiàn)有的工程放到CVS服務(wù)器中,切換到Package Explorer,選中Hello工程,右鍵點(diǎn)擊,選擇Team->Share Project: 使用剛才我們添加的Repository,繼續(xù),并將所有文件都添加到CVS中,最后Eclipse提示Commit: 填入一個(gè)簡單的注釋,確定,然后Eclipse會(huì)把整個(gè)工程提交到CVS服務(wù)器,可以在Package Explorer中看到圖標(biāo)發(fā)生了變化,Hello.java文件后面會(huì)有

2、版本號1.1。在CVS Repositories面板中刷新,可以看到剛添加進(jìn)來的工程: 在團(tuán)隊(duì)開發(fā)中,當(dāng)創(chuàng)建了一個(gè)基本的工程并提交到CVS后,別的開發(fā)人員首先要Check Out這個(gè)工程到各自的本地計(jì)算機(jī)上,這里為了演示,首先我們在Package Explorer中刪除Hello工程,然后打開CVS Repositories(如果沒有看到Repository就按照上面的方法添加Repository),選擇Hello工程,右鍵點(diǎn)擊,選擇Check Out As: 作為一個(gè)Project簽出,就可以在Package Explorer中看到簽出的工程。當(dāng)對某些源文件作了修改后,需要提交更改到CVS服

3、務(wù)器。選中更改的文件或工程,右鍵點(diǎn)擊,選擇Team->Commit: 然后填入簡單的注釋,就可以提交到CVS服務(wù)器上了,可以看到源文件的版本號變成了1.2。以上簡單介紹了如何搭建CVS服務(wù)器以及在Eclipse中如何使用CVS,可以參考CVS手冊以便了解Branch、Merge等更多功能的使用。 版本控制在團(tuán)隊(duì)開發(fā)中是必不可少的。CVS是優(yōu)秀的開源版本控制軟件,Eclipse本身就內(nèi)置了對CVS的支持,只需簡單配置,即可使用CVS。首先我們要正確安裝并配置好CVS服務(wù)器,通常Linux Server都自帶CVS服務(wù),不過命令行操作比較繁瑣。Windows下也有簡單易用的CVS服務(wù)器,這里

4、我們推薦CVSNT,可以下載CVSNT 2.0.51a,安裝并啟動(dòng)CVSNT: 然后切換到Repositories面板,添加一個(gè)Repository,命名為/cvs-java,CVSNT會(huì)提示是否初始化這個(gè)Repository,選擇是: 然后在Advanced面板上選中“Pretend to be a Unix CVS version”: 然后,在Windows賬戶中為每一個(gè)開發(fā)人員添加用戶名和口令?,F(xiàn)在,CVSNT的安裝配置已經(jīng)完成,下一步,啟動(dòng)Eclipse,我們可以使用原有的Hello工程,或者新建一個(gè)Project,然后選擇菜單Window->Show View->Othe

5、r,打開CVS->CVS Repositories: 然后點(diǎn)擊按鈕,添加一個(gè)Repository: 本文來自:Linux教程 - 一、安裝和配置準(zhǔn)備您需要安裝 Eclipse 3.0M9、J2ME Wireless Toolkit 2.1和EclipseMe,Eclipse是IBM公司資助的開源 IDE 開發(fā)環(huán)境,Eclipse正受到越來越多的開發(fā)人員的關(guān)注。J2ME Wireless Toolkit 2.1提供了運(yùn)行 J2ME 應(yīng)用程序所需要的庫以及模擬器等。EclipseMe 插件可以讓開發(fā)人員在 Eclipse 環(huán)境中輕松開發(fā)J2ME應(yīng)用程序。1 安裝關(guān)于在哪里下載以下軟件的鏈接,

6、請參閱參考資料部分:1. 從 Eclipse 的 Web 站點(diǎn)上下載 Eclipse v3.0M9。您可以通過將其解壓到任何一個(gè)選定的目錄(這個(gè)目錄在本文中稱為 eclipse_home)中來安裝它。2. 從 Sun公司 的 Web 站點(diǎn)上下載 J2ME Wireless Toolkit 2.1。您可以安裝到任何一個(gè)選定的目錄中(這個(gè)目錄在本文中稱為 wtk_home)。3. 從 SourceForge 上下載EclipseME插件V 0.4.5。您可以通過將其解壓到 eclipse_home/eclipse/plugins 目錄中來安裝它。4. 從 Sun 的 Web 站點(diǎn)上下載 J2SE

7、SDK。您可以將其安裝到任何一個(gè)選定的目錄(這個(gè)目錄在本文中稱為 java_home)中。本文中J2SE SDK 的版本是 v1.4.2。2 配置EclipseME 插件要配置EclipseME 插件,執(zhí)行以下步驟:1. 啟動(dòng) Eclipse。2. 配置 EclipseME 插件。要實(shí)現(xiàn)這個(gè)功能,請單擊"Window"菜單,然后選擇"Preferences"菜單項(xiàng),然后在彈出的菜單中選擇"J2ME"。然后執(zhí)行以下步驟:點(diǎn)擊"Platform Components",見圖1。右鍵單擊右邊窗口"Wireles

8、s Toolkits",選擇"Add Wireless Toolkit",此時(shí)會(huì)彈出窗口(見圖2),"Wireless Toolkit Directory"設(shè)置為wtk_home對應(yīng)的安裝目錄。 圖 1 EclipseME 插件配置界面 3. 安裝完成之后應(yīng)該出現(xiàn)如圖3的界面。 圖2 添加Wireless Toolkit 圖3配置EclipseME 插件 - 最終結(jié)果 二、開發(fā) J2ME應(yīng)用程序在本節(jié)中,我們將介紹使用 EclipseMe 插件構(gòu)建 J2ME 應(yīng)用程序的基本步驟。首先,您將創(chuàng)建一個(gè) J2ME 項(xiàng)目。然后,您可以開始您的J2ME開

9、發(fā)之旅。1 創(chuàng)建 J2ME項(xiàng)目要?jiǎng)?chuàng)建一個(gè) J2ME 項(xiàng)目,回到"File"菜單,選擇"New"項(xiàng),并在子菜單中選擇"Project"。然后執(zhí)行以下步驟:(1.) 進(jìn)入"J2ME"選項(xiàng),選擇"J2ME Midlet Suite"并單擊"Next"(參見圖4)。(2.) 填上項(xiàng)目名,并單擊"Next"(參見圖5)。(3.) 選擇可能的平臺定義。可以選擇"J2ME Wireless Toolkit 2.1 MIDP1.0 Platform"或

10、者"J2ME Wireless Toolkit 2.1 MIDP1.0 Platform",默認(rèn)為前者。(參見圖6)。(4.) 單擊"Next",出現(xiàn)J2ME項(xiàng)目有關(guān)設(shè)置,這里我們均采用默認(rèn)設(shè)置(參見圖7)。(5.) 單擊"Finish",完成項(xiàng)目創(chuàng)建。最終創(chuàng)建 J2ME 項(xiàng)目的結(jié)果如圖8所示。 圖 4. 創(chuàng)建 J2ME 項(xiàng)目 - 步驟 1 圖 5. 創(chuàng)建 J2ME 項(xiàng)目 - 步驟 2 圖 6. 創(chuàng)建 J2ME 項(xiàng)目 - 步驟 3 圖 7. 創(chuàng)建 J2ME 項(xiàng)目 - 步驟 4 圖 8. 創(chuàng)建 J2ME 項(xiàng)目 - 最終結(jié)果 2開發(fā) J2

11、ME項(xiàng)目要?jiǎng)?chuàng)建一個(gè) J2ME 應(yīng)用程序,回到"File"菜單,選擇"New"項(xiàng),并在子菜單中選擇"Other"。然后執(zhí)行以下步驟:(1). 進(jìn)入"J2ME"選項(xiàng),選擇"J2ME Midlet"并單擊"Next"(參見圖9)。(2). 填上應(yīng)用程序名,其他設(shè)置采用默認(rèn)設(shè)置,并單擊"Finish"(參見圖10),完成應(yīng)用程序創(chuàng)建。 圖 9. 創(chuàng)建 J2ME 應(yīng)用程序 - 步驟 1 圖 10 創(chuàng)建 J2ME 應(yīng)用程序 - 步驟2 系統(tǒng)會(huì)自動(dòng)生成HelloWorl

12、d.java程序以及一段自動(dòng)生成的代碼,最終的程序代碼見清單1。清單 1. HelloWorld.java/* HelloWorld.java* author WanHui*/import javax.microedition.lcdui.Display;import javax.microedition.lcdui.TextBox;import javax.microedition.midlet.MIDlet;public class HelloWorld extends MIDlet private TextBox textbox; /* * Constructor of the Hell

13、oWorld class */ public HelloWorld() textbox = new TextBox("", "Hello World!", 20, 0); /* * The startApp method is used for starting or restarting a MIDlet. * * see javax.microedition.midlet.MIDlet#startApp() */ public void startApp() Display.getDisplay(this).setCurrent(textbox);

14、/* * The pauseApp method is called by the system to ask a MIDlet to "pause" * * see javax.microedition.midlet.MIDlet#pauseApp() */ public void pauseApp() /* * The destroyApp method is called by the system when the MIDlet is about to * be destroyed * * see javax.microedition.midlet.MIDlet#d

15、estroyApp(boolean) */ public void destroyApp(boolean unconditional) 3 運(yùn)行J2ME應(yīng)用程序要運(yùn)行一個(gè) J2ME 應(yīng)用程序,選中一個(gè)應(yīng)用程序,本文中為HelloWorld.java,然后回到"Run"菜單,選擇"Run As"項(xiàng),并在子菜單中選擇"1 Emulated J2ME Midlet"。然后Eclipse會(huì)啟動(dòng)J2ME Wireless Toolkit 2.1中的模擬器得到運(yùn)行結(jié)果見圖11。 圖 11 J2ME 應(yīng)用程序運(yùn)行結(jié)果 結(jié)束語在本文中,我們介紹了 E

16、clipse IDE 開發(fā)環(huán)境下使用EclipseMe插件開發(fā)J2ME程序。您已經(jīng)學(xué)習(xí)了在Eclipse環(huán)境下如何創(chuàng)建了一個(gè)簡單的J2ME應(yīng)用程序。 在用戶界面中,如何顯示擴(kuò)展,顯示在何處?這在很大程度上是一個(gè)溫和的提示,因?yàn)槲覀円训玫搅舜鸢?。我們希望對一個(gè)或多個(gè)選中的方法顯示上下文菜單選項(xiàng),這些菜單選項(xiàng)允許我們只用一個(gè)操作就可以更改方法的可視性。我們更喜歡在可以顯示方法的任何地方都能使用這些菜單選項(xiàng),如在 Hierarchy 視圖和 Package Explorer 中。這把我們帶到下一個(gè)問題。通常如何擴(kuò)展用戶界面?通過示例來學(xué)習(xí)會(huì)更有趣,這方面 Plug-in Project 向?qū)Э梢蕴峁?/p>

17、幫助,它提供了一些樣本代碼,我們可以修改這些代碼來滿足我們的需要。我們將回答該向?qū)е械膸讉€(gè)問題,它將自動(dòng)啟動(dòng)用于插件開發(fā)的專門透視圖,稱為 Plug-in Development Environment(PDE),以準(zhǔn)備測試。該向?qū)О丝梢詭椭覀內(nèi)胧值脑S多示例。事實(shí)上,我們的老朋友“Hello World”也在那里。為了沿襲這個(gè)傳統(tǒng),我們將生成這個(gè)“Hello World”,查看結(jié)果以驗(yàn)證是否正確安裝了該環(huán)境,隨后修改它以幫助我們回答當(dāng)前的問題,并把我們帶到下一個(gè)問題:對用戶界面的擴(kuò)展如何知道類似于“選擇”這樣的?臼錄空夂苤匾蛭頤竅頤切陸氳牟說鈑玫降鼻把械姆椒稀?請注意,這些指示信息假定您

18、正從全新的 Eclipse 安裝開始。如果修改了該環(huán)境或更改了首選項(xiàng),那么可能不會(huì)完全象如下所述那樣工作。您可以考慮從全新的工作空間啟動(dòng) Eclipse:打開命令提示符窗口,更改到 eclipse 目錄,然后使用 -data 參數(shù)啟動(dòng) Eclipse,如清單 1 所示。清單 1. 啟動(dòng)全新的 Eclipse 實(shí)例cd c:eclipse2.1eclipseeclipse.exe -data workspaceDevWorks從使用 New Plug-in Project 向?qū)?chuàng)建一個(gè)插件項(xiàng)目開始。選擇 File > New > Project。在 New Project 對話框中,

19、在向?qū)Я斜碇羞x擇 Plug-in Development and Plug-in Project,然后選擇 Next。將項(xiàng)目命名為 com.ibm.lab.helloworld。該向?qū)⒏鶕?jù)這個(gè)名稱創(chuàng)建插件標(biāo)識,所以它在系統(tǒng)中必須是唯一的(按慣例,項(xiàng)目名和插件標(biāo)識相同)。使用顯示在“Project contents”下面的推薦缺省工作空間位置就可以了;選擇 Next。在下一頁上,選擇 Next 以接受缺省插件項(xiàng)目結(jié)構(gòu)。該插件代碼生成器頁推薦了許多樣本,向?qū)Э梢詭椭M(jìn)一步對該項(xiàng)目進(jìn)行參數(shù)化。選擇“Hello, World”選項(xiàng),然后選擇 Next。下一頁(顯示在圖 4 中)推薦了插件名和插件類

20、名。這些名稱基于插件項(xiàng)目 com.ibm.lab.helloworld 的最后一個(gè)單詞。這個(gè)示例不需要任何插件類便利方法,所以取消對三個(gè)代碼生成選項(xiàng)的選擇(如圖 4 所示),然后選擇 Next(不是 Finish;您還有一頁要完成)。 圖 4. Simple Plug-in Content您可以在下一頁(顯示在圖 5 中)中指定參數(shù),這些參數(shù)對于“Hello, Worlds”示例是唯一的,比如,將要顯示的消息。 圖 5. Sample Action Set要簡化所產(chǎn)生的代碼,將該操作的目標(biāo)包名從 com.ibm.lab.helloworld.actions 更改成 com.ibm.lab.he

21、lloworld,即與該項(xiàng)目的名稱相同。盡管在實(shí)際的插件中,您可以選擇用不同的包對相關(guān)的類進(jìn)行分組,但在本例中,只有兩個(gè)類,所以不必這樣做。這樣也遵循了“主”包名和項(xiàng)目名相同這個(gè)慣例?,F(xiàn)在選擇 Finish。您應(yīng)該看到一個(gè)信息消息:“Plug-ins required to compile Java classes in this plug-in are currently disabled. The wizard will enable them to avoid compile errors.”。選擇 OK 繼續(xù)。如果這是個(gè)全新的工作空間,那么您還將看到另一個(gè)信息消息:“This kind

22、 of project is associated with the Plug-in Development Perspective. Do you want to switch to this perspective now?”。 選擇 Yes 以根據(jù)這個(gè)消息的建議進(jìn)行切換。要驗(yàn)證所有的東西是否都設(shè)置正確,讓我們測試新插件。選擇 Run > Run As > Run-Time Workbench。這將啟動(dòng) Eclipse 的第二個(gè)實(shí)例,它將包含您的插件。這個(gè)新實(shí)例將創(chuàng)建一個(gè)新的名為 runtime-workspace 的工作空間目錄,所以不必?fù)?dān)心;對這個(gè)實(shí)例所作的任何測試都不會(huì)影

23、響開發(fā)設(shè)置。您應(yīng)該看到類似圖 6 的樣子,其中有一個(gè)新的下拉菜單,其標(biāo)簽為 Sample Menu,它有單一的選項(xiàng) Sample Action。選擇它將顯示下面的信息消息。如果您不是從全新的工作空間啟動(dòng),那么可以選擇 Window > Reset Perspective 以查看新生成的下拉菜單;從現(xiàn)有工作空間啟動(dòng)時(shí)不會(huì)顯示這個(gè)菜單,因?yàn)楣ぷ髋_“記得”上次 Eclipse 運(yùn)行時(shí)哪些操作集是活動(dòng)的(您還可以從 Window > Customize Perspective.下拉菜單選項(xiàng)上添加刪除操作集)。 圖 6. Hello, Eclipse world讓我們快速瀏覽一下插件清單文件

24、 plugin.xml。雙擊它,以在 Plug-in Manifest 編輯器中打開它。這個(gè)編輯器提供了幾個(gè)類似于向?qū)У捻摵鸵粋€(gè)“原始”源代碼頁。通過選擇 Source 選項(xiàng)卡轉(zhuǎn)到源代碼頁。您將看到與以下清單 2 顯示的代碼相似的內(nèi)容;我們感興趣的是用粗體顯示的那幾部分。清單 2. 所生成的“Hello, World” plugin.xmlpoint="org.eclipse.ui.actionSets">>label="Sample Action Set"visible="true"id="com.ibm.la

25、b.helloworld.actionSet">label="Sample &Menu"id="sampleMenu">name="sampleGroup">label="&Sample Action"icon="icons/sample.gif"class="com.ibm.lab.helloworld.SampleAction"tooltip="Hello, Eclipse world"menubarPath

26、="sampleMenu/sampleGroup"toolbarPath="sampleGroup"id="com.ibm.lab.helloworld.SampleAction">并不需要過于深入地研究這個(gè)代碼。我們“旅行”的第 II 部分的目的只是讓您熟悉一些基本機(jī)制,借此我們可以介紹 JDT 的擴(kuò)展。這里,您會(huì)看到這樣一種技術(shù)的一個(gè)樣本:它將菜單和菜單選項(xiàng)作為操作集添加到工作臺。它以一個(gè)用 標(biāo)記聲明的擴(kuò)展開始。工作臺用戶界面插件定義了這個(gè)擴(kuò)展點(diǎn) org.eclipse.ui.actionSets,以及幾個(gè)類似的擴(kuò)展點(diǎn),通過

27、這幾個(gè)擴(kuò)展點(diǎn)可以向各種用戶界面元素提供其它插件。我們還未回答如何將菜單選項(xiàng)添加到 Java 方法的上下文菜單中。一個(gè)簡單示例可以給我們一些提示。首先打開顯示“Hello, World”消息的類 SampleAction,請注意其 run 方法。它不是特別有趣;不過我們還看到了另一個(gè)方法 selectionChanged。啊哈!下一個(gè)問題的答案有了。對用戶界面的擴(kuò)展如何知道類似于“選擇”這樣的基本事件?工作臺“選擇”更改時(shí)會(huì)告知所提供的操作(象我們提供的菜單下拉選項(xiàng))。這在 selectionChanged 方法前面的 Javadoc 注釋中得到了確認(rèn)。讓我們修改這個(gè)方法以告知有關(guān)“選擇”的更多

28、信息。首先,如果您還沒有關(guān)閉工作臺的運(yùn)行時(shí)實(shí)例,那么現(xiàn)在就關(guān)閉。然后對 selectionChanged 方法添加清單 3 中的代碼。清單 3. selectionChanged 方法,首次修改public void selectionChanged(IAction action, ISelection selection) System.out.println("=> selectionChanged");System.out.println(selection);有了這個(gè)調(diào)試代碼,我們將看到選擇了什么,并了解到有關(guān)什么使 Eclipse 工作的更多信息。保存該方法

29、,然后重新啟動(dòng)運(yùn)行時(shí)工作臺。重要:Eclipse 有一個(gè)延遲裝入的策略,以在用戶執(zhí)行需要插件代碼的操作時(shí)才裝入插件。所以您必須先選擇 Sample Action 菜單選項(xiàng),以在調(diào)用 selectionChanged 方法之前裝入您的插件?,F(xiàn)在選擇其它東西,如編輯器中的文本、Navigator 中的文件,當(dāng)然還有 Outline 視圖中的成員(回憶一下:您必須創(chuàng)建一個(gè) Java 項(xiàng)目和示例 Java 類來做到這一點(diǎn),因?yàn)檫\(yùn)行時(shí)實(shí)例使用不同的工作空間)。清單 4 顯示了您將在 Eclipse 的開發(fā)實(shí)例的控制臺中看到的某個(gè)示例輸出。清單 4. selectionChanged 輸出,首次修改=&g

30、t; selectionChangedpackage com.ibm.lab.soln.jdt.excerpt in Working copy ChangeIMemberFlagAction.javain com.ibm.lab.soln.jdt.excerpt in src in com.ibm.lab.soln.jdt.excerpt=> selectionChanged=> selectionChangedorg.eclipse.jface.text.TextSelection9fca283=> selectionChanged=> selectionChange

31、dpackage com.ibm.lab.soln.jdt.excerpt in Working copy ChangeIMemberFlagAction.javain com.ibm.lab.soln.jdt.excerpt in src in com.ibm.lab.soln.jdt.excerpt=> selectionChangedIMember members in ChangeIMemberFlagAction in Working copy ChangeIMemberFlagAction.javain com.ibm.lab.so 如有不明白之處,歡迎參加社區(qū)討論Eclip

32、se 的 Java 開發(fā)環(huán)境的重構(gòu)(refactor)能力是它提供的最有用的特性之一。本文將向您介紹創(chuàng)建您自己的重構(gòu)(作為 Eclipse 的自然擴(kuò)展)步驟。本文所提供的解決方案的許多部分摘自最近出版的 The Java Developer's Guide to Eclipse 一書。由于 Eclipse 具有功能強(qiáng)大的 Java 開發(fā)環(huán)境,這使它獲得了人們的一致好評。這個(gè) Java 開發(fā)環(huán)境(再加上團(tuán)隊(duì)環(huán)境和其它基礎(chǔ)功能)使 Eclipse 成為引人注目的集成開發(fā)環(huán)境,對 Java 開發(fā)人員來說,這是個(gè)好消息。而且,Eclipse 還是一個(gè)開放源碼項(xiàng)目。但真正使人們對 Eclipse

33、 感到興奮的是它提供了擴(kuò)展的可能性。許多基于 Eclipse 的商用產(chǎn)品都顯示出這種提供集成產(chǎn)品的方法的實(shí)際意義。例如,IBM WebSphere Application Developer 和 Rational XDE 就說明了 Eclipse 已具有的影響。這些產(chǎn)品和其它基于 Eclipse 的產(chǎn)品降低了用戶的“學(xué)習(xí)曲線”,因?yàn)樗鼈兙哂蓄愃频挠脩艚缑?。?dāng)然,對于大型軟件公司來說,這頗有價(jià)值,但是對于小公司或個(gè)人有什么用嗎?這正是 Eclipse 擴(kuò)展性能力讓人感興趣的地方。不僅那些擁有大型開發(fā)組織的公司可以用它進(jìn)行集成,任何愿意花些時(shí)間學(xué)習(xí)幾個(gè) Eclipse 框架的人也都可以利用這一能力

34、?!芭恫唬蹦赡茉谙?,“別再提什么框架;我沒時(shí)間學(xué)習(xí)更多框架。”不必?fù)?dān)心;這學(xué)起來很快而且相當(dāng)容易。在您的另一絲疑慮在頭腦中開始形成之前,先聲明一點(diǎn),本文絕不是對 Eclipse 進(jìn)行毫無價(jià)值的“hello world”式擴(kuò)展。請放心,在如何增強(qiáng) Eclipse 的 Java 開發(fā)環(huán)境的生產(chǎn)性使用方面,您將看到實(shí)際的價(jià)值以及一個(gè)清晰演示。您甚至還可能有點(diǎn)驚奇地發(fā)現(xiàn):要完成某些相當(dāng)令人驚異的事情,只要幾十行代碼就可以了。本文將向您展示什么是可能的,從哪里開始,并將向您提供開始時(shí)需要什么的可靠評價(jià)。盡管擴(kuò)展 Eclipse 是一個(gè)高級主題,但是您只要先了解如何使用 Eclipse 的 Java

35、開發(fā)環(huán)境就可以了。自己輕松重構(gòu)成員可視性最初在編寫代碼時(shí),我沒有過多地?fù)?dān)心將方法可視性歸為 default(包)、private、public 還是 protected。在創(chuàng)建方法時(shí),我使它們都為 public。只有當(dāng)我最后定下了包的組織結(jié)構(gòu)并完成了對方法的重構(gòu) 不管是通過從現(xiàn)有代碼抽取出新方法、在層次結(jié)構(gòu)中上移或下移方法還是將方法整個(gè)地移至其它類中 我才會(huì)重新檢查方法的可視性。我認(rèn)為,在我知道最終類的模樣并實(shí)際使用過代碼之前,我不想聲明我的“客戶們”可能需要什么。換句話說,在共享新框架之前,必須確定什么是實(shí)現(xiàn)細(xì)節(jié),什么是必需的,這樣別人才能夠擴(kuò)展它。如果只需在 Outline 視圖、Hier

36、archy 視圖或任何您查看方法的地方選擇方法 然后通過單擊菜單選項(xiàng),就可以將一個(gè)或多個(gè)方法設(shè)置成所期望的可視性 那么這會(huì)非常方便。誠然,我習(xí)慣了在我使用 VisualAge for Smalltalk 那段日子里學(xué)到的這一功能。圖 1 顯示了對 Eclipse 的 Java 開發(fā)環(huán)境中 Java 編輯器的 Outline 視圖上下文的擴(kuò)展。 圖 1. 對方法的上下文菜單進(jìn)行的擴(kuò)展從用戶的角度而言,這很巧妙,因?yàn)檫@是引入用戶界面的很自然的方法。沒有任何暗示說這些新的菜單選項(xiàng)不屬于 Eclipse 最初的 Java 開發(fā)工具(Java Development Tool,JDT)。事實(shí)上,那就是菜

37、單級聯(lián)使用“soln”前綴的原因 這樣您就可以分辨出它是一個(gè)擴(kuò)展!而且,開發(fā)人員不必記住只有在特定視圖或編輯器中才可以使用這些選項(xiàng),因?yàn)橹灰椒@示在哪里,它們就可以在哪里顯示。簡述“Hello World”“嘿,等一下,您承諾過不會(huì)有Hello, World的!”是的,但在我們開始討論真正有趣的事情之前,確實(shí)需要先來了解一下 Eclipse 的基礎(chǔ)。所以,如果您從未編寫過自己的 Eclipse 擴(kuò)展,那么請和我一起快速了解一下 Eclipse 的體系結(jié)構(gòu)和插件開發(fā)環(huán)境。否則,請?zhí)料乱还?jié)。繼續(xù)這次“旅行”!本質(zhì)上,Eclipse 是一組松散綁定但互相連接的代碼塊。如果搞清楚這些代碼塊如何被“

38、發(fā)現(xiàn)”,以及它們之間怎樣相互發(fā)現(xiàn)和擴(kuò)展,就能了解 Eclipse 體系結(jié)構(gòu)的基本原理。 圖 2. Eclipse 平臺體系結(jié)構(gòu)這些功能單元稱為插件。Eclipse 平臺運(yùn)行時(shí)(參見圖 2)負(fù)責(zé)在名為 plugin.xml 的文件中查找這些插件的聲明(稱為插件清單),每個(gè) plugin.xml 文件都在各插件的子目錄中,這些子目錄位于 Eclipse 的安裝目錄下名為 plugins 的公共目錄(具體而言,就是 eclipseplugins)。根據(jù)這些文件,Eclipse 平臺運(yùn)行時(shí)就在啟動(dòng)時(shí)在內(nèi)存中構(gòu)建一個(gè)全局注冊表,稱為插件注冊表,根據(jù)這個(gè)注冊表,給定的插件就可以在運(yùn)行時(shí)確定其它哪些插件希望

39、擴(kuò)展它。希望被其它插件擴(kuò)展的插件將聲明一個(gè)擴(kuò)展點(diǎn)。這是插件的某種“電源板”,通過對插件聲明擴(kuò)展,其它插件就可以利用這個(gè)插件?;氐轿覀兊氖纠?,那么任務(wù)就是通過查找滿足我們需要的相應(yīng)擴(kuò)展點(diǎn)來決定從哪里“插入” Eclipse。幸運(yùn)的是,一旦使用 Eclipse 一段時(shí)間后,您就會(huì)知道有數(shù)量驚人的東西可以使用,盡管可能您還沒有實(shí)際使用過。這是因?yàn)槟?Eclipse 用戶界面所看到的與由構(gòu)成 Eclipse 插件的類所建的模型通常幾乎是一一對應(yīng)的。圖 3 使這一點(diǎn)更為清晰: 圖 3. 視圖及其模型這里我們看到一系列普通的用戶界面,右側(cè)的是最廣為人知的用戶界面 命令提示符(Command Prompt

40、)窗口,在其中用 dir 命令顯示文件系統(tǒng)內(nèi)容,然后是左邊專門化程度較高的視圖 JDT 的 Package Explorer。從用戶界面的角度來看,所有這些視圖都將同一“模型”(也就是一些文件)的表示可視化。作為 Eclipse 用戶,我們很自然地會(huì)希望這兩個(gè) Eclipse 視圖同時(shí)向我們提供查看同一事物的不同方法:Navigator ?故玖瞬糠植僮饗低澄募淖嘔油跡clipse 的工作空間),而 Package Explorer 向我們展示了同樣的一些文件,這些文件是用對 Java 程序員而言更自然更高效的方法組織和表示的。通過了解 Eclipse 用戶界面如何反映其底層模型,以及 Ecli

41、pse 模型如何成為相互構(gòu)建的基礎(chǔ),這向我們提供了該如何找到“插入”我們擴(kuò)展的最佳位置的重要線索。顯示在視圖下面的 Eclipse 接口名稱 IFile 和 ICompilationUnit 就是我們可以預(yù)期從構(gòu)成 Eclipse 的模型中獲得的兩個(gè)接口示例。由于它們通常對應(yīng)于用戶界面中顯示的控件項(xiàng),所以您已經(jīng)對通過編程獲得的效果有一個(gè)直觀的感受。這是我們“旅行”的第 I 部分。在第 II 部分中,我們將討論開發(fā)解決方案。我們不打算提供這個(gè)解決方案并逐一解釋,探索其中的一些奧秘,這不是更有趣嗎?讓我們首先討論與以下這個(gè)問題相關(guān)的一些問題:使用我們自己的方法可視性重構(gòu)能力來擴(kuò)展 JDT。把問題問

42、在點(diǎn)子上比知道答案更重要我們先探討一些常規(guī)問題:在用戶界面中,如何顯示擴(kuò)展,以及顯示在何處?通常如何擴(kuò)展用戶界面?對用戶界面的擴(kuò)展如何知道類似于“選擇”這樣的基本事件?我們對基本 Eclipse 領(lǐng)域有了很好的了解之后,將轉(zhuǎn)向一些特定于 JDT 的問題:如何擴(kuò)展 JDT 的特定元素的用戶界面(象 Outline 視圖中顯示的成員)?擴(kuò)展視圖還是它們的底層模型?Package Explorer 中顯示的元素和其它視圖(如 Outline 視圖)中顯示的相同元素之間有什么關(guān)系?我們的擴(kuò)展需要知道它們之間的任何區(qū)別嗎?如何通過編程更改 JDT 模型?怎樣分析 Java 源代碼以進(jìn)行修改?目前Java

43、開發(fā)領(lǐng)域的各種集成開發(fā)環(huán)境(IDE)呈現(xiàn)出百花齊放的局面,從Borland的JBuilder,到IBM的Visual Age for Java、WebSphere Studio,Oracle的JDeveloper,Sun的 Forte for Java,WebGain的Visual Cafe,TogetherSoft的Together,還有開放源代碼的Eclipse、NetBeans 等,種類10種有余。這么多種類的IDE繁榮了Java開發(fā)工具家族,但是也為開發(fā)人員的選擇提出了難題。這些IDE的開發(fā)環(huán)境有著較大的差別,在一種開發(fā)環(huán)境下開發(fā)的項(xiàng)目不能很方便地移植到另一種開發(fā)環(huán)境,這就要求更為謹(jǐn)慎

44、地選擇適合項(xiàng)目目標(biāo)的開發(fā)工具。在目前所有的IDE中,Eclipse可以說是最有發(fā)展前途的產(chǎn)品之一。Eclipse最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎(chǔ),包括Platform、JDT和PDE。目前由IBM牽頭,圍繞著Eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational Software、Red Hat及Sybase,最近Oracle也計(jì)劃加入到Eclipse聯(lián)盟中?;靖拍钤趯W(xué)習(xí)使用Eclipse之前,有必要對關(guān)于這個(gè)項(xiàng)目的

45、名詞做一些解釋。Eclipse是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。它由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,每一個(gè)項(xiàng)目由一個(gè)項(xiàng)目管理委員會(huì)監(jiān)督,并由它的項(xiàng)目章程管理。每一個(gè)項(xiàng)目由其自身的子項(xiàng)目組成,并且使用 Common Public License(CPL)版本1.0許可協(xié)議。Eclipse工具項(xiàng)目為不同的工具建造者提供一個(gè)焦點(diǎn),以保證為Eclipse Platform創(chuàng)建最好的工具。Eclipse工具項(xiàng)目的任務(wù)是為Eclipse Platform培育廣泛的工具的創(chuàng)建。工具項(xiàng)目提供單一的

46、聯(lián)系點(diǎn)以調(diào)和開放源代碼工具建造者,從而使得覆蓋和重復(fù)最小化,并保證共享的最大化和共同組件的創(chuàng)建,促進(jìn)不同類型工具的無縫互操作。工具項(xiàng)目由工具開發(fā)者委員會(huì)和工具項(xiàng)目的項(xiàng)目管理委員會(huì)提議、選擇和開發(fā)的子項(xiàng)目組成。Eclipse技術(shù)項(xiàng)目的任務(wù)是為開放源代碼開發(fā)者、研究者、學(xué)院和教育者提供新的管道,以參與將來Eclipse的演化。它按照研究、培育和教育三個(gè)項(xiàng)目流來組織,研究項(xiàng)目在Eclipse相關(guān)領(lǐng)域諸如編程語言、工具和開發(fā)環(huán)境方面進(jìn)行探索和研究;培育項(xiàng)目是小型的、未正式結(jié)構(gòu)化的項(xiàng)目,為Eclipse軟件基礎(chǔ)添加新的能力;教育項(xiàng)目聚焦于教育材料的開發(fā)、教學(xué)幫助和課件。Eclipse Platform是

47、一個(gè)開放的可擴(kuò)展的IDE。Eclipse Platform提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。Eclipse Platform允許工具建造者獨(dú)立開發(fā)與他人工具無縫集成的工具你無須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開始。Eclipse SDK(軟件開發(fā)者包)是3個(gè)Eclipse項(xiàng)目的子項(xiàng)目(Platform、JDT、PDE)所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個(gè)具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項(xiàng)目生產(chǎn)的工具和來自其它開放源代碼的第三方軟件組合而

48、成。Eclipse項(xiàng)目生產(chǎn)的軟件以 CPL發(fā)布,第三方組件有各自自身的許可協(xié)議。下載、安裝Eclipse知道了這些關(guān)于Eclipse項(xiàng)目的信息,我們可以下載、安裝一個(gè)Eclipse。Eclipse SDK就是我們要下載的,其中包括了開發(fā)Java應(yīng)用的所有內(nèi)容和Eclipse項(xiàng)目的所有成果。進(jìn)入Eclipse項(xiàng)目的主頁,點(diǎn)擊Downloads,進(jìn)入下載頁。Eclipse最新的版本是2.0.2版,但是2.0.2版的多國語言翻譯包還沒有出來,所以我們可以使用一個(gè)稍早一點(diǎn)的版本2.0.1。點(diǎn)擊2.0.1進(jìn)入其下載頁,這個(gè)頁面有很多下載連接,包括Eclipse

49、SDK在很多平臺上的版本,這里我們只需要下載eclipse-SDK-2.0.1-win32.zip和NLS-SDK-2.0.1-Translations.zip兩個(gè)文件就可以了,另外還有一個(gè) eclipse-examples-2.0.1-win32.zip文件,是學(xué)習(xí)Java開發(fā)用戶指南所需要的。將這3個(gè)文件解壓縮到相同的目錄,如D:eclipse。在運(yùn)行Eclipse之前首先應(yīng)該安裝好JDK(Sun 的JDK或IBM的JDK都可以,應(yīng)該安裝1.3以上版本,推薦使用1.4以上版本,因?yàn)橹挥惺褂?.4以上版本的JDK才可以享受到新增的HotSwap功能對于調(diào)試帶來的方便),設(shè)置好環(huán)境變量JAVA

50、_HOME、CLASSPATH和PATH。為D:eclipse下的eclipse.exe在桌面上建立一個(gè)快捷方式。雙擊快捷方式啟動(dòng)Eclipse。Eclipse也可以以命令行方式啟動(dòng),在命令行上指定使用的JVM和保存數(shù)據(jù)的workspace,例如:D:eclipseeclipse.exe-vmD:WebSphereAppServerjavabinjavaw.exe -dataD:WORKworkspace其中,D:WORKworkspace是保存項(xiàng)目文件的位置??梢赃x擇幫助幫助內(nèi)容進(jìn)入Eclipse的幫助系統(tǒng)。有了Eclipse的多國語言翻譯包,所有的選單和聯(lián)機(jī)幫助都已經(jīng)翻譯成了中文,使用起來

51、非常方便。下面我們編寫一個(gè)HellWorld程序,步驟如下:1選擇文件新建項(xiàng)目;2項(xiàng)目類別選Java;3項(xiàng)目列表選Java項(xiàng)目;4點(diǎn)擊“下一步”;5輸入項(xiàng)目名稱,例如:HelloProject;6點(diǎn)擊“完成”;7在工具條里點(diǎn)擊“創(chuàng)建Java類”的按鈕(帶有一個(gè)C標(biāo)記)見圖1; 圖1 點(diǎn)擊“創(chuàng)建Java類”的按扭圖8在名稱域輸入HelloWorld;9點(diǎn)擊public static void main(String args) 的復(fù)選框,讓Eclipse創(chuàng)建main方法(見圖2); 圖2 Eclipse創(chuàng)建main方法10點(diǎn)擊“完成”;11一個(gè)Java編輯窗口將打開,在main方法中輸入Syst

52、em.out.println(“Hello World”)行;12使用Ctrl-s保存,這將自動(dòng)編譯 HelloWorld.java;13點(diǎn)擊工具條里的“運(yùn)行”按鈕;14選擇“Java應(yīng)用程序”,然后選“新建”;15輸入項(xiàng)目名稱HelloProject和main類名 HelloWorld;16點(diǎn)擊“運(yùn)行”;17這時(shí)候,將會(huì)打開一個(gè)控制臺窗口,一句 “Hello World”將會(huì)顯示在里面(見圖3)。 圖3 "Hello World"顯示窗口Eclipse有一個(gè)增量編譯器,每次保存一個(gè)Java文件時(shí)它就自動(dòng)進(jìn)行編譯。這個(gè)特性被稱做“自動(dòng)構(gòu)建”。如果不需要這個(gè)功能,可以在窗口首

53、選項(xiàng)工作臺對資源修改執(zhí)行自動(dòng)構(gòu)建,關(guān)閉這個(gè)特性。隨后工具條中會(huì)出現(xiàn)“全部構(gòu)建”的按鈕。類似的選項(xiàng)也會(huì)出現(xiàn)在相關(guān)的選單中。創(chuàng)建CVS資源庫現(xiàn)在我們知道如何創(chuàng)建一個(gè)項(xiàng)目了,下一步是與某個(gè)版本服務(wù)器建立連接,將項(xiàng)目發(fā)布到版本服務(wù)器中。目前開源軟件都是使用CVS來做版本管理,因此我們也使用CVS來舉例。Eclipse SDK已經(jīng)包括了支持CVS的插件,要想使用其它的版本管理軟件,例如VSS,可以從Eclipse的網(wǎng)站上下載相關(guān)的插件。創(chuàng)建一個(gè)CVS資源庫位置的步驟如下:1打開CVS資源庫開發(fā)透視圖(窗口打開透視圖其它CVS資源庫開發(fā))。2在CVS資源庫視圖里點(diǎn)右鍵,新建資源庫位置,見圖4。 圖4 新建資源庫位置3在添加CVS資源庫對話框中輸入CVS Server 的詳細(xì)信息。4點(diǎn)擊“完成”。5一旦配置好CVS資源庫,就可以把項(xiàng)目輸入資源庫了。轉(zhuǎn)到Java透視圖,在項(xiàng)目名稱上點(diǎn)右鍵,選擇小組共享項(xiàng)目。6選擇剛才添加的資源庫。7點(diǎn)擊“完成”。8在同步窗口中的項(xiàng)目上點(diǎn)右鍵,選提交。9輸入為提交加入的注釋,如圖5。 圖5 為提交加入注釋10點(diǎn)擊“確定”,則項(xiàng)目被發(fā)布到CVS資源庫中。11將項(xiàng)目共享到資源庫中后,可以使用“

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論