???????? 搞了整整兩天才終于將項目從 Eclipse 中導了出來,網(wǎng)上雖然有許多可供參考的標準導出步驟,但對于具體的項目來說可能會因為版本的不同或者是插件的不同產(chǎn)生各種各樣的問題。下面是我在導出 RCP 程序過程中的一些心得,希望對大家 有些幫助。
- 有樣學樣法則真的是很重要,特別是當你無法馬上理解 Eclipse 內(nèi)部機制的時候更是如此。自己一個人摸索很久還不如照著現(xiàn)成的去做更加有效率。可以在導出 RCP 項目時察看示例源碼 Hyperbola ,是一個聊天程序, Eclipse.Rich.Client.Platform.Designing.Coding.and.Packaging.Java.Applications 書中的示例。該書網(wǎng)上有 chm 版本的下載。源碼下載鏈接: http://eclipsercp.org/book/cd.php 。 注意:當出現(xiàn)錯誤時一定要照著源碼的配置一項一項的檢查,重點是檢查 .product 文件和 PDE 中 Build 項和 MENIFEST.MF 。許多時候一個非常細小的差別往往使程序?qū)С鍪 ?/span>
- 在發(fā)布 RCP 以及導出插件包時,其他相關(guān)的插件( Required Plugins )必須打包后加載進 Eclipse 插件中(可以采用 Link 方式),而不能作為 WorkSpace 中打開的項目加載在插件依賴項中,這樣才能順利將插件和 RCP 項目導出。或者不加載進 Eclipse 插件中,只要將其作為第三方插件,在 PDE 中 runtime 選項組添加該插件再打包。或者在 WorkSpace 該插件項目中新增加一個文件夾,在其中放入所依賴的插件項。然后在 PDE 中 Build 選項組二進制構(gòu)建子選項組中將其包含也可。
- 在 PDE 中 Build 選項組中的運行時信息,默認名是一個“ . ”,意思是直接在 plugins 目錄下生成 jar 文件,如果給它起自己的名稱的話,將會根據(jù)那個名稱在 plugins 目錄下生成一個文件夾,然后在該文件夾里才會有自己的 jar 文件。在導出 Eclipse RCP 項目時,主插件應(yīng)該保持默認名,使其生成的 jar 文件在 plugins 目錄下便存在,否則便會出現(xiàn)應(yīng)用程序找不到的錯誤。
- MENIFEST.MF 里面的代碼跟最終的結(jié)果關(guān)系很大。下面把其中的格式復制出來,以便有一些參考性的東西。
?1
Manifest
-
Version:?
1.0
?2
Bundle
-
ManifestVersion:?
2
?3
Bundle
-
Name:?MyProject?Plug
-
in
?4
Bundle
-
SymbolicName:?MyProject;?singleton:
=
true
?5
Bundle
-
Version:?
1.0
.
0
?6
Bundle
-
Localization:?plugin
?7
Require
-
Bundle:?org.eclipse.ui,
?8
org.eclipse.core.runtime,
?9
org.eclipse.core.resources,
10
org.eclipse.ui.ide,
11
Eclipse
-
AutoStart:?
true
12
Export
-
Package:?myProject,
13
Bundle-Activator: myProject.MyProjectPlugin

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

?
?
其中,12行Export-Package項是你希望外部可見的包,寫不寫對導出項目沒有影響。
下面第13項在MENIFEST.MF中可能會自動生成,在導出插件時要注意將其去掉,否則會產(chǎn)生錯誤。(具體原因還未知,希望高人指點迷津