2014-07-04 155 views
0

正如標題說:我想運行一個Eclipse的插件,更具體地說是GEF編輯器,沒有之前啓動一個Eclipse實例。導出GEF編輯器作爲一個可運行的JAR

我試圖使用在MANIFEST.MF文件中提供的導出功能: enter image description here

然而,運行生成JAR通過在命令行上執行java -jar editor.jar(稱之爲editor.jar)失敗的消息沒有主要的清單屬性,在插件editor.jar

我知道的事實,這是因爲我的MANIFEST.MF文件丟失以下行

Main-Class: <packagename>.<classname> 

它定義了我的應用程序的入口點。但是,我不知道我在這裏需要做什麼(在Eclipse插件的情況下),因爲我沒有像main方法那樣的東西。我認爲Eclipse是運行一些魔碼它不顯示我的,當我開始我的項目作爲Eclipse的應用

那麼,我需要做什麼?

+0

您不能在Eclipse之外運行Eclipse插件。您可以編寫一個Eclipse富客戶端程序(RCP),其中包含您的插件和所依賴的所有其他插件。 –

+0

@ greg-449爲什麼?無論如何,將應用程序作爲「Eclipse應用程序」運行將啓動另一個Eclipse實例(運行插件)。那麼,爲什麼它不可能在Eclipse之外運行呢?我怎樣才能寫一個「Eclipse富客戶端程序」,它只能運行我的插件? – 0xbadf00d

+0

當您作爲Eclipse Application運行時,它會運行Eclipse的全新實例並提供所有插件和支持代碼。 Eclipse RCP是他們創建一個可以做同樣事情的包的方式。查看'Run> Run Configurations',在Eclipse Applications下找到你的應用程序,並查看插件選項卡以查看正在使用的所有內容。 –

回答

1

你可以嘗試運行一個GEF編輯器作爲Java應用程序。請參閱Draw2D示例以瞭解如何完成。您可以重新使用GraphicalViewer和PaletteViewer,這意味着基於鼠標的與圖和調色板的交互將被保留。 但是,您的編輯器類可能必須合併到SWT外殼中。另外,編輯器爲Eclipse工具欄,彈出菜單等所做的所有操作都將消失。如果需要,Outline和Tree視圖必須以某種方式併入您的Java應用程序中。 認爲你最好用RCP應用程序。

0

將您的GEF編輯器包裝在一個簡單的RCP中。您可以通過插件嚮導創建一個,設置「您是否創建富客戶端應用程序?」到「是」的過程中。這使您可以選擇通過Hello World模板在下一步中創建最小應用程序。一旦你有了這個,你可以在你的GEF編輯器中嵌入你的GEF編輯器,或者從新的RCP應用程序聲明一個依賴到你的GEF編輯器插件,並從Application類的start方法啓動編輯器。

有關RCP開發的資料,請參閱參考資料。 Getting started with the Eclipse RCP

它確實不會爲您的編輯器增加很多開銷,但可讓您有機會使用平臺的工作臺和工作空間隱喻並創建易於部署和使用的應用程序包。

一旦你有了到位,你可以從plugin.xml>概述測試你的RCP>測試>啓動Eclipse應用程序。這將而不是運行IDE的一個新的實例,但只是RCP應用程序本身。

而不是從MANIFEST導出。MF,看看創建一個產品(你可以通過嚮導來做:>>產品配置),並通過Maven Tycho插件構建它(分別查看各自的 - 真正有價值的 - 來自EclipseCon Europe 2012的教程:http://eclipsecon.org/europe2012/sessions/building-eclipse-plugins-and-rcp-applications-tycho.html,其中還包括創建產品的部分)。 Tycho提供真正的跨平臺構建,as long as you're not on Windows

沒有魔法代碼:)。

相關問題