当Eclipse RCP IApplication启动时,它会传递一个包含大量品牌和配置信息的IApplicationContext对象。我希望得到任何相同的信息 - 即,调用getBrandingApplication()或getBrandingName()的结果 - 来自任意其他插件,而不是应用程序插件,没有应用程序插件的配合。换句话说,我是否可以在运行时调用任何方法来获取当前运行的IApplication的id或位置?
答案 0 :(得分:2)
IApplicationContext
被定义为OSGi服务,因此您可以使用ServiceTracker
或其他访问服务方法从任何插件访问它。类似的东西:
ServiceTracker appContext = new ServiceTracker(bundle, IApplicationContext.class, null);
appContext.open();
IApplicationContext context = appContext.getService();
您还可以使用从getProperty
获得的IProduct
Platform.getProduct()
方法来访问部分信息。
在Eclipse 4'e4'中,应用程序IApplicationContext
位于Eclipse上下文中,可以注入。