Java 如何在EclipseEquinox启动程序应用程序中使用声明性服务?

Java 如何在EclipseEquinox启动程序应用程序中使用声明性服务?,java,eclipse,osgi,equinox,declarative-services,Java,Eclipse,Osgi,Equinox,Declarative Services,我正在从事的项目是作为Eclipse PDE产品启动的,运行主类(为了便于讨论,我们称之为MainClass),它实现iaapplication接口 我试图使用声明性服务将我的引用绑定到我的服务包。这是可行的,因为引用在启动时绑定在MainClass的实例中 但是,尽管插件和捆绑包中有任何配置设置,例如cardinality和singleton,Eclipse启动器还是会创建MainClass的新实例,并且不会绑定服务 虽然我可以在静态变量第一次绑定时将引用存储在静态变量中,但我正试图避免这样一

我正在从事的项目是作为Eclipse PDE产品启动的,运行主类(为了便于讨论,我们称之为
MainClass
),它实现
iaapplication
接口

我试图使用声明性服务将我的引用绑定到我的服务包。这是可行的,因为引用在启动时绑定在
MainClass
的实例中

但是,尽管插件和捆绑包中有任何配置设置,例如
cardinality
singleton
,Eclipse启动器还是会创建
MainClass
的新实例,并且不会绑定服务

虽然我可以在静态变量第一次绑定时将引用存储在静态变量中,但我正试图避免这样一个混乱的“hack”

有没有办法强制启动器使用声明性服务已经创建的
MainClass
的现有实例?或者有其他的解决方案来解决这个问题,而不需要去掉EclipsePDE启动器


谢谢

不,我不这么认为。@NeilBartlett谢谢你的回复。看起来EclipsePDE启动器对于这个项目来说可能是错误的方法;现在我只需要找到一个不同的解决方案,说服我的团队的其他成员。很抱歉,我带来了坏消息。根本的问题是Eclipse从未全面采用OSGi服务。Eclipse4在某种程度上朝着这个方向发展,但不幸的是,
iaapplication
早于此,并且来自扩展注册表世界。