熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Eclipse入門之使用指南及開發Eclipse插件 (2)

2013-11-23 20:21:08  來源: Java開源技術 

  如果啟動正常可以進一步嘗試在Eclipse中調試Servlet或JSP程序下面我們將用Tomcat自帶的Servlet例程HelloWorldExamplejava來示范一下如何在Eclipse中調試Sevlet程序首先要在Java視圖中新建一個Java項目為了方便可以直接將項目路徑指定到HelloWorldExmaple程序所在路徑之後按Next進入Java Settings對話框選擇Libraries標簽並用Add External JARs按鈕來指定Servletjar包的位置這裡直接用了Tomcat中的Servletjar包
  
  最後點擊Finish完成項目的生成在新生成項目中的default package可以找到HelloWorldExamplejava雙擊打開文件並可嘗試給HelloWorldExample加上一個斷點(雙擊編輯窗口左側邊界)之後在外部浏覽器中輸//localhost:/examples/servlet/HelloWorldExample再回過來看Eclipse發生了什麼變化是一個調試窗口呀!在Eclipse中進行的調試操作和絕大多數的IDE大同小異如設置斷點單步跟蹤變量值察看等等在這裡也就不用再詳述了
  
  Eclipse最有魅力的地方就是它的插件體系結構在這個體系中重要的概念是擴展點(extension points)也就是為插件提供的接口每一個插件都是在現有的擴展點上開發並可能還留有自己的擴展點以便在這個插件上繼續開發
  
  由於有了插件Eclipse系統的核心部分在啟動的時候要完成的工作十分簡單啟動平台的基礎部分和查找系統的插件在Eclipse中實現的絕大部分功能是由相應的插件完成的比如WrokBench UI插件完成界面的外觀顯示Resource Management插件完成維護或生成項目或文件等資源管理工作(在下面的第二個例子就會用到這個插件)而Version and Configuration Management (VCM)插件則負責完成版本控制功能等等雖然以上提到的每一個功能都是絕大多數IDE環境所必備的功能Eclipse卻也把它們都做成了插件模式甚至用來開發Java程序的開發環境(Java development toolingJDT)也只不過是Eclipse系統中的一個普通插件而已整個Eclipse體系結構就象一個大拼圖可以不斷的向上加插件同時現有插件上還可以再加插件下面的插件開發示例就是在WorkBench UI插件中的觀察窗口擴展點上開發的
  
  本文第一部分介紹過Eclipse的開發界面其中之一就是觀察窗口它通常配合編輯窗口顯示一些有用的信息在這裡我們只簡單生成一個顯示歡迎信息的觀察窗口假設新插件的名子叫Welcome
  
  第一步先用向導新建一個Java項目我們可以在菜單欄選擇FileàNew或用工具欄的向導按鍵或是在資源窗口用鼠標右鍵菜單中的New打開向導對話框然後用缺省方式創建項目並在項目中建立一個Welcomejava文件代碼如下
  
  package comnidapengeclipseplugin;
  import orgeclipseswtwidgetsComposite;
  import orgeclipseswtwidgetsLabel;
  import orgeclipseswtSWT;
  import orgeclipseuipartViewPart;
  public class Welcome extends ViewPart {
  Label label;
  public Welcome() {
  }
  public void createPartControl(Composite parent) {
  label = new Label(parent SWTWRAP);
  labelsetText(Welcome to Eclipse);
  }
  public void setFocus() {
  }
  }
  
  為使這個程序能正常編譯要配置它的編譯環境即指定所需的CLASSPATH在Eclipse中可以用幾種方法常用的是兩種第一是在資源窗口或Java包窗口選中該項目點擊鼠標右鍵在打開的菜單中選擇屬性(Properties)之後在屬性對話框中選擇Java Build PathàLibraries用Add External JARs功能添加三個包它們都是Eclipse的現有插件的類包可以在你的Eclipse安裝路徑plugins下面的相應路徑中找到分別是reruntime插件中的runtimejarorgeclipseswt中的swtjar和orgeclipseui中的workbenchjar第二種指定CLASSPATH的方法是先將以上提到的三個包直接導入到Eclipse中的某下一個項目中如果導入到和Welcomejava相同的項目中則無需進一步指定CLASSPATH否則需要在項目的屬性菜單中選擇Java Build PathàProjects然後選中這三個包所在的項目
  
  在pluginxml中一共有四個主要的標簽pluginrequiresruntimeextension其中plugin標簽的屬性提供的是我們要開發的Welcome插件的基本信息除了nameversionprovidername等最重要的是id它要求不能和現有的Eclipse插件id有沖突因此我們用包名作為插件的idrequires標簽中所列出的是需要的插件這裡我們要用到Eclipse Workbench和SWT API因此導入了orgeclipseui插件runtime標簽指明的是我們開發的插件所在JAR包的文件名extension標簽是插件擴展點的信息orgeclipseuiviews是Eclipse系統提供的觀察窗口擴展點我們的例子是一個觀察窗口(View)這表明我們是要在 orgeclipseuiviews擴展點上進一步開發
  
  extension中還包括category和view兩個標簽在後續的啟動Welcome插件步驟中我們就會知道這兩個標簽的含義要注意的是category和view標簽的id的唯一性並且在view的屬性中聲明了Welcome插件的類名
  
  在Eclipse中為pluginxml提供了缺省可視化的編輯器在編寫pluginxml過程中可以借助這個編輯器完成一些工作如果你直接錄入了pluginxml文件源代碼還可以用這個編輯器校驗你的代碼如果編輯器不能正確讀入就表明你的pluginxml有一些問題
  
  在確認Weclomejava和pluginxml都正確無誤之後可以用Eclipse菜單欄中的Export命令將Weclomejava導出為JAR文件它的名子應該和pluginxml中runtime聲明的JAR相一致同時導出pluginxml安裝Welcome插件的方法和本文第一部分介紹的安裝Tomcat插件方法是一樣的首先在Eclipse的安裝路徑plugins路徑下面建立一個comnidapengeclipseplugin路徑然後將Weclomejar和pluginxml拷到這個路徑下之後必需重新啟動Eclipse在Eclipse啟動的時候它會搜索所有在插件路徑下的插件並注冊它們(僅僅是注冊只有在需要某個插件的時候Eclipse才會啟動它)在重新啟動的Eclipse的菜單欄中選擇PerspectiveàShow ViewàOthers在打開的對話框中我們會找到在pluginxml中extension的category標簽中聲明的name屬性Welcome在Welcome的支結點中包含了view標簽name屬性Welcome to Eclipse選中它並確認Welcome窗口就會顯示在Eclipse Workbench上的某個位置 如果在執行了以上操作但沒有顯示新窗口可以再次打開Show View菜單此時在菜單中應該有新一頂選擇Welcome to Eclipse然後選中它
  
  上面我們完成了一個觀察窗口的插件但這個操作過程對開發稍微復雜一些的插件就顯得不太方便了每次測試都要將代碼打包發布再重新啟動Eclipse系統!為此Eclipse提供了一個專門為開發插件而做插件(有點繞嘴)Plugin Development Environment(PDE)本文前面曾提到目前Eclipse的Release或Stable版本缺省提供了這個插件因此如果安裝的Eclipse是這兩個版本中的一個就可以直接進行下面的步驟下面我們再用PDE環境開發一個稍微復雜一些的插件
  
  第一步仍然要新建一個項目只是在向導中不是用Java項目而是Plugin Development中的Plugin Project在應用向導生成新項目的時候要注意兩點第一是PDE的項目名稱就是plugin的id因此要保證它的唯一性這裡我們的項目名是comnidapengeclipsepluginpde其次為了進一步說明Eclipse插件的結構在Plugin Code Generators中選擇用向導模板生成一個缺省的插件
  
  這個用缺省方式生成的插件類對於我們將要的代碼並不是必需的也可以用生成空插件的方式建立我們的項目這樣做只是為進一步說明Eclipse的插件結構項目生成之後在我們的項目中會包含一個PdePluginjava文件它就是以缺省方式生成的插件類注意到它繼承了AbstractUIPlugin類而AbstractUIPlugin類實現了orgeclipseuiplugin接口事實上所有的Eclipse插件都會有一個相應的實現plugin接口的類這個類將是新插件的主類(類似於有main()函數的Java類)它負責管理插件的生存期在我們的AbstractUIPlugin繼承子類中可以用singleton模式來保存在Eclipse中的生成的該插件的第一個也是唯一實例一般來說在該繼承子類中也要實現一個getDefault()方法以返回當前插件的實例而且當Eclipse首次使用該插件的時候這個主類將是第一個被調用的類因此我們也可以在它的代碼中執行一些初始化的工作而且如果插件需要使用PreferencesDialogs或Images資源也可以通過這個類中的相應方法來得到它們的實例如用其中的getDialogSettings()getPreferenceStore()getImageRegistry()方法
  
  但是象前面提到的PdePluginjava對下面的例子並不是必需的我們不用對它進行任何修改在我們第一個例子中的Weclome插件根本就沒有生成AbstractUIPlugin的繼承子類此時系統會自動為Weclome插件生成一個缺省的主類(類似於Java類構造函數如果沒有聲明系統會指定一個默認的構造函數)下面的代碼是才真正實現了我們新插件的功能假設這個插件名子是NoticeView
  
  package comnidapengeclipsepluginpde;
  import reresources*;
  import reresourcesIResourceChangeEvent;
  import reruntimeCoreException;
  import javautilResourceBundle;
  import orgeclipseswtwidgetsLabel;
  import orgeclipseswtwidgetsComposite;
  import orgeclipseuipartView
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28353.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.