簡體   English   中英

使用bndtools啟動Eclipse 3.x RCP應用程序

[英]Launching an Eclipse 3.x RCP Application using bndtools

過去幾天,我一直在尋找解決問題的方法。 我試圖通過bndruns文件通過bndtools啟動器使用3.x兼容性層啟動Eclipse RCP。

我知道該解決方案涉及將bndtools.runtime.eclipse.applauncher放入運行包列表中,以啟動E4應用程序,並且存在將E3.x應用程序遷移到E4的方法。 我們希望暫時保持對Rich Client Platform的編程控制,因此目前不理想的是遷移到XMI文件以布置工作台。

我創建了一個使用bndtools構建的插件項目。 據我所知,我已經包括了運行該應用程序所需的所有捆綁軟件,並遵循了幾個示例(順便說一句,我發現的大多數OSGI示例都是基於控制台的)。

因為我沒有看到RCP加載(我們有一個RCP插件擴展了IApplication接口,並且我們的項目結構仍然基於Activator),所以最初我迷失了為什么它不起作用,而是添加了-osgi -console =的運行屬性確實提供了一些其他信息:

使用-runfw:org.eclipse.osgi

最后幾行如下:

# framework=org.eclipse.osgi.launch.Equinox@59fa1d9b
# registered launcher with arguments for syncing
# will wait for a registered Runnable

另外,我正在使用的插件被標記為STRTD,並且正在使用它的捆綁軟件也被標記為STRTD,而其他大多數捆綁軟件都被標記為ACTIV ,我認為這也是問題的一部分。 我試圖通過包含一行以啟動多個捆綁包的方式來強制捆綁包開始(以下其他示例),但是遇到了以下問題:控制台將錯誤地指出在嘗試加載時找不到或無法找到org.eclipse.core.runtime的主類。將其包括在已激活捆綁包的列表中。

谷歌搜索(甚至Binging)似乎還沒有產生一種解決方案,該解決方案說明了如何設置Eclipse 3.x應用程序以使用bndrun文件運行。 我想念什么? 最近,我嘗試了以下屬性:

-runproperties: \
 osgi.os=win32,\
 osgi.clean=true,\
 osgi.console=,\
 eclipse.product=org.eclipse.sdk.ide,\
 osgi.arch=x86_64,\
 osgi.ws=win32,\
 equinox.use.ds=true,\
 eclipse.application=org.eclipse.ui.ide.workbench

我假設,如果我正在使用的實際測試包能夠真正激活,那么我也應該能夠在plugin.xml文件中找到設置的應用程序ID並使用它。 嘗試激活該插件也會導致找不到主類錯誤,即使我在bnd文件中指定了Bundle-Activator也是如此。 該激活器似乎沒有啟動,因為我已將其設置為打印到控制台,並且沒有打印任何內容。 我假設由於捆綁包處於STRTD狀態,因此它沒有啟動。

任何幫助,將不勝感激。

編輯:作為更新,添加org.apache.felix.gogo.runtimeorg.apache.felix.gogo.shell確實導致我的測試插件的激活器開始使用。 奇怪的是,它所依賴的插件已從STRTD遷移RSLVD

其他討論表明,我們可能必須使用EclipseStarter手動啟動Eclipse實例。

以下Github存儲庫包含使用bndtools和Eclipse 3.8的示例。 它在/cnf/eclipse_common_3.8/bndtools.runtime.eclipse.applaunch-0‌.1.0.jar中使用了改編的bndtools.runtime.eclipse.applauncher。請參閱3.8 bnd啟動配置,也包括example.aspectj / example.aspectj。 bnd.app/run/launch_org.eclip‌se.osgi_3.8.x.bndrun‌。 這是(除了在倉庫中演示的Aspect東西以外)使用bnd成功啟動Eclipse應用程序的最小捆綁包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM