本論文的內容主要介紹了在Eclipse平臺上構建您自己的產(chǎn)品的方法。
Eclipse平臺不必多做解釋了,它應該是目前最熱門(mén)的開(kāi)源的java開(kāi)發(fā)工具之一了。而且,它的目標是定義為一個(gè)工具集成平臺,這種插件式的架構可以使眾多的工具提供廠(chǎng)商發(fā)布自己公司的基于Eclipse的產(chǎn)品,如IBM的workplace、borland公司的jbuilder2006 (Eclipse版)。
本文就是介紹如如何創(chuàng )建基于Eclipse產(chǎn)品。遵循Hello world的慣例,本文的例子是一個(gè)最簡(jiǎn)單的RCP例子,它只有一個(gè)介紹頁(yè)面。它最主要的目的不是教您如何進(jìn)行插件的開(kāi)發(fā),而是介紹如何將您的插件打包成可分發(fā)的RCP產(chǎn)品。
創(chuàng )建您的RCP產(chǎn)品
在Eclipse 3.2中(事實(shí)上在Eclipse 3.1中,因為我們下面的產(chǎn)品都是在Eclipse 3.2上開(kāi)發(fā)的,所以統一都叫做3.2),開(kāi)發(fā)RCP(富客戶(hù)端程序)比較方便。在Eclipse3.0中,也可以開(kāi)發(fā)RCP產(chǎn)品,但是還是有幾點(diǎn)不方便之處:必須手工config.ini文件,將您的product、application和閃屏等手工更改或者添加到config.ini文件。在Ecllipse3.2中,您可以添加一個(gè)product文件,配置您的閃屏所在的目錄、RCP產(chǎn)品運行時(shí)的圖標、關(guān)于對話(huà)框中產(chǎn)品圖片和文字、RCP產(chǎn)品的product和application、產(chǎn)品名稱(chēng)、啟動(dòng)器的名稱(chēng)、包含的功能部件等。同時(shí),在Eclipse 3.2中,還可以直接導出RCP產(chǎn)品,而在Eclipse 3.0中,您只能導出插件,而后放入到RCP平臺中。
下面,我們就以一個(gè)簡(jiǎn)單的例子演示如果創(chuàng )建您自己的RCP產(chǎn)品。
生成一個(gè)簡(jiǎn)單的RCP例子
打開(kāi)Eclipse3.2,新建插件項目,項目名稱(chēng)最好遵循約定俗稱(chēng)的方式,因為plugin.xml中的插入點(diǎn)的id將根據這個(gè)項目名稱(chēng)來(lái)生成(當然您也可以手工更改)。
最下面是您的RCP產(chǎn)品發(fā)布時(shí)選擇哪一個(gè)Eclipse平臺,這里選擇Eclipse 3.1。點(diǎn)擊下一步按鈕。

圖表 1
填寫(xiě)您的插件的id、版本、名稱(chēng)和提供商,選擇您的產(chǎn)品為RCP產(chǎn)品(相對Eclipse 3.0新增加的功能)。點(diǎn)擊下一步按鈕。
圖表 2
選擇您要采用的模板。通過(guò)模板,您可以快速的建立起您的project,當然您也可以創(chuàng )建一個(gè)空的project,然后逐步添加相應的文件。
在這個(gè)例子中,采用了一個(gè)帶有介紹頁(yè)面的模板。
在我們第一次啟動(dòng)Eclipse時(shí),通常會(huì )看到一個(gè)Eclipse的歡迎頁(yè)面。我們這個(gè)例子也演示了這個(gè)功能,當別人第一次運行我們的產(chǎn)品的時(shí)候,我們給他顯示一個(gè)產(chǎn)品介紹的頁(yè)面,用戶(hù)將來(lái)也可以在幫助菜單中選擇顯示這個(gè)頁(yè)面。
這里之所以采用這個(gè)模板是為下一片文章埋下伏筆,下一片文檔將重點(diǎn)介紹Eclipse的介紹頁(yè)面。點(diǎn)擊下一步按鈕。
圖表 3
在這一步中,需要填寫(xiě)產(chǎn)品的id、產(chǎn)品名稱(chēng)和application的id。并選擇歡迎界面的內容是靜態(tài)的還是動(dòng)態(tài)的,這里選擇是靜態(tài)的,將以xhtml格式文件提供介紹頁(yè)面。點(diǎn)擊下一步,project就建立了。
圖表 4
生成product配置文件 相對Eclipse3.0,最新的Eclipse產(chǎn)品提供了配置product產(chǎn)品的功能,如果配置了這個(gè)文件,就可以將您的這個(gè)產(chǎn)品直接導出成RCP產(chǎn)品。
選擇新建一個(gè)Product Configuration:
圖表 5
在接下來(lái)的對話(huà)框中填寫(xiě)您的這個(gè)文件的名稱(chēng),以及如何初始化這個(gè)文件的內容。這里選擇了我們正在開(kāi)發(fā)的這個(gè)產(chǎn)品,您選擇第一項也沒(méi)關(guān)系,因為可以通過(guò)編輯器可視化的編輯。
圖表 6
點(diǎn)擊完成之后就會(huì )顯示這個(gè)文件的編輯器。這個(gè)編輯器有三個(gè)頁(yè)面,第一個(gè)頁(yè)面描述了這個(gè)產(chǎn)品的一些基本信息。剛才我們創(chuàng )建這個(gè)文件的時(shí)候選擇是基于這個(gè)產(chǎn)品創(chuàng )建,所以這里已經(jīng)填寫(xiě)了我們產(chǎn)品的內容。
圖表 7
第二個(gè)頁(yè)面顯示了我們這個(gè)產(chǎn)品發(fā)布時(shí)包含的功能部件以及程序運行時(shí)的運行時(shí)的參數。
圖表 8
第三個(gè)頁(yè)面時(shí)配置啟動(dòng)程序的名稱(chēng)、程序運行時(shí)的圖標、閃屏所在的插件以及關(guān)于對話(huà)框的圖片和文字。在這里先填寫(xiě)啟動(dòng)程序的名稱(chēng)。
啟動(dòng)程序是只調用startup.jar的那個(gè)exe文件。默認是eclipse.exe,它負責查找jre、處理啟動(dòng)時(shí)的參數以及調用starup.jar文件。
其他的配置在下面介紹。
圖表 9
圖表 10
創(chuàng )建產(chǎn)品的windows圖標 看看我們的Eclipse,程序在運行時(shí)圖標是日食那個(gè)圖標。如果我們要發(fā)布自己的產(chǎn)品,必然要采用自己的產(chǎn)品的圖標。
首先準備兩張gif圖片,一張是16×16的,一張是32×32的。在我們的project中創(chuàng )建一個(gè)icons文件夾,將這兩個(gè)圖片放到這個(gè)文件夾中。
圖表 11
雙擊plugin.xml文件,在編輯器中選擇build那一頁(yè),在二進(jìn)制輸出選項中將icons選中,這樣在發(fā)布的時(shí)候就會(huì )同時(shí)將icons發(fā)布。
圖表 12
現在我們雙擊product文件(rcpapp.product),選取第三頁(yè)(Branding)。配置Window Images這一節。
圖表 13
這樣,我們的程序在運行時(shí),將顯示我們的圖標。
圖表 14
作者:smallnest
網(wǎng)址:http://www.kuaff.com
email:smallnest@gmail.com
創(chuàng )建產(chǎn)品About圖片和文字 在Eclipse的幫助菜單中,選擇“關(guān)于”(about)那一個(gè)菜單項,將顯示Eclipse產(chǎn)品信息。
圖表 15
如果我們要發(fā)布自己的產(chǎn)品,自然會(huì )想到顯示我們自己的圖片和信息。下面就介紹了如何替換成自己的圖片和文本信息。
首先將一個(gè)gif格式的產(chǎn)品圖片放入icons文件夾下,圖片的大小不能超過(guò)500×330像素,如果大于250×330像素,文本信息將不被顯示。
現在我們雙擊product文件(rcpapp.product),選取第三頁(yè)(Branding)。配置About dialog這一節。
圖表 16
到目前為止,我們的程序只有一個(gè)菜單“Help”,而且菜單中只有一個(gè)菜單項“Help”,現在我們就需要將“About”菜單項添加到幫助菜單中。
可以通過(guò)下面的代碼將“About”菜單添加上。其中的aboutAction是我們現在才添加的代碼。
圖表 17
這樣,選擇“About”菜單時(shí)將顯示我們的產(chǎn)品信息。
圖表 18
替換閃屏現在讓我們做一個(gè)閃屏(Splash),來(lái)替換掉project中那個(gè)臨時(shí)的splash.bmp文件。
圖表 19
替換完畢,雙擊rcpapp.product,在打開(kāi)的編輯器選擇第三頁(yè)的Splash Screen這一節,選擇閃屏在哪個(gè)插件中。
圖表 20
事實(shí)上,閃屏圖片不一定就是splash.bmp圖片,您可以起隨便一個(gè)名字,不過(guò)這樣一來(lái)就需要修改config.ini文件,這里不多做介紹了。
定制產(chǎn)品的Theme
目前來(lái)講,我們的產(chǎn)品做的差不多了。如果直接運行我們的產(chǎn)品,可以看到,那個(gè)Tab標題欄不是我們在Eclipse 3.0以后看到的那種波浪型的樣式。我們可以通過(guò)配置文件的方式更改產(chǎn)品的樣式。
雙擊plugin.xml文件,在編輯器中打開(kāi)“擴展”那一頁(yè),選擇擴展點(diǎn)"org.eclipse.core.runtime.products"。
圖表 21
可以看到在我們的產(chǎn)品下已經(jīng)配置好了三個(gè)屬性:windowImages、aboutImage、aboutText?,F在我們增加一個(gè)屬性,點(diǎn)擊“Add”按鈕,增加屬性“preferenceCustomization”,它的值設為“plugin_customization.ini”。
圖表 22
可以在這里設置的屬性都是在接口org.eclipse.ui.branding.IProductConstants定義的。包括ABOUT_IMAGE 、ABOUT_TEXT、APP_NAME、PREFERENCE_CUSTOMIZATION、STARTUP_FOREGROUND_COLOR、STARTUP_MESSAGE_RECT、STARTUP_PROGRESS_RECT、WELCOME_PAGE、WINDOW_IMAGE(棄用)、WINDOW_IMAGES。
同時(shí)在我們的project下新增加一個(gè)文件plugin_customization.ini,它的內容如下:
org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS=false
org.eclipse.ui/DOCK_PERSPECTIVE_BAR=topRight
它的第一項就是設置我們的Tab的樣式,true是傳統樣式。我們設置為false。第二項是設置透視圖所在的位置,這里設置為右上,不過(guò)我們的產(chǎn)品中沒(méi)有顯示這個(gè)選擇,設不設無(wú)所謂。
事實(shí)上,在這個(gè)文件中可以定義的參數有上百個(gè),可以通過(guò)Eclipse的javadoc中的
org.eclipse.platform.doc.isv/reference/api/constant-values.html
文件查找。配置方式為"包名/常量名=值"。
注意:現在雖然添加了plugin_customization.ini,但是在發(fā)布產(chǎn)品的時(shí)候還是不會(huì )將這個(gè)文件添加上去。所以您需要在plugin.xml文件的編輯器的build頁(yè)面中,將plugin_customization.ini文件選上。
圖表 23
發(fā)布產(chǎn)品現在到了發(fā)布我們產(chǎn)品的時(shí)候了。
不過(guò)在發(fā)布之前,先更改一個(gè)Eclipse3.2錯誤,因為目前的自動(dòng)生成的介紹頁(yè)面有些錯誤。在生成介紹頁(yè)面的時(shí)候,在content目錄下生成了三個(gè)xhtml文件,將這三個(gè)文件中的中文去掉,否則在Eclipse解析的時(shí)候會(huì )出錯。
選擇"Export"(導出)菜單,在對話(huà)框中選擇“Eclipse product”。
圖表 24
點(diǎn)擊下一步按鈕。在接下來(lái)的對話(huà)框中選擇哪一個(gè)產(chǎn)品文件,以及產(chǎn)品發(fā)布的文件夾的名稱(chēng)。您可以選擇發(fā)布成打包的文件,也可以選擇發(fā)布到某個(gè)文件夾中。同時(shí)還可以選擇class的版本。
圖表 25
現在運行一下我們的產(chǎn)品吧。
圖表 26
圖表 27
選擇您的jre真正在用戶(hù)的機器上安裝的時(shí)候,他的機器上不一定安裝了JRE。所以您可以將JRE和您的RCP程序一起打包。啟動(dòng)程序首先在本文件夾下檢查是否有jre文件夾,否則的話(huà)再找注冊表等地方,如果查找不到j(luò )re,程序將無(wú)法運行。
打包jre非常的簡(jiǎn)單,只需將您機器上的jre文件夾復制到您的RCP產(chǎn)品的目錄下。
提示:在一些應用中,可能需要java的串口包,或者是java的媒體開(kāi)發(fā)包,這些開(kāi)發(fā)包需要安裝到JDK下。您可以將您的jdk目錄復制到RCP應用程序文件夾下,同時(shí)將jdk文件夾改名為jre。
創(chuàng )建您自己的啟動(dòng)程序目前來(lái)說(shuō),我們的RCP產(chǎn)品是發(fā)布完畢。但是這里有一點(diǎn)點(diǎn)的瑕疵??匆幌挛覀兊漠a(chǎn)品的文件夾。
圖表 28
那個(gè)啟動(dòng)程序“RCP演示程序.exe”文件的圖標還是Eclipse的圖標,這不能不說(shuō)有那么一點(diǎn)點(diǎn)的遺憾。
可以有多種方式解決。
一種就是通過(guò)資源修改文件,將“RCP演示程序.exe”的圖標的資源進(jìn)行修改。
再一種就是自己寫(xiě)一個(gè)啟動(dòng)程序,查找jre、分析參數、調用startup.jar文件。
現在給您介紹第三種方法。
打開(kāi)Eclipse3.2所在的文件下的
eclipse3.2\plugins\org.eclipse.platform.source_3.1.0\src\org.eclipse.platform_3.1.0文件夾,解壓其中的launchersrc.zip文件。
替換解壓的文件夾下的library\win32\eclipse.ico文件,替換成您的文件。
圖表 29
運行library\win32\build.bat文件,將生成啟動(dòng)程序。將啟動(dòng)程序改名為“RCP演示程序”,然后復制到您的RCP程序的文件夾下,替換相應的程序即可。
圖表 30
需要注意的是,在Windows下需要Microsoft Visual C and C++ Compiler 6.0,在vs.net 2005下無(wú)法編譯。使用mingw也可以。
通過(guò)以上的步驟,您就可以完整的發(fā)布一個(gè)RCP產(chǎn)品的例子了。
下面是廣告時(shí)間,您可以休息一次了。以下是我做的一個(gè)RCP的程序。