0

我正在编写一个使用 Equinox 作为我的 OSGi 框架的应用程序。我正在尝试发现在我的捆绑包注册时已知的所有捆绑包。我尝试使用以下行来检索所有可用的捆绑包。然而,

EclipseStarter.getSystemBundleContext().getBundles();

给我一个警告...

不鼓励访问:由于对所需库 D:\java\eclipse\plugins\org.eclipse.osgi_3.4.0.v20080605-1900.jar 的限制,无法访问 EclipseStarter 类型的方法 getSystemBundleContext()

获取框架内所有可用捆绑包的列表的正确用法是什么?

4

1 回答 1

2

您可以使用自己的包上下文作为入口点,而不是 EclipseStarter - 在您的插件激活器中:

start(BundleContext context)
{
  context.getBundles();  // what you want
}

如果您不了解Plugin罐头类,请查看它们。AbstractUIPlugin如果你真的需要单例访问,你的插件可能是一个 - 随意公开YourPlugin.getInstance().getBundleContext().

(免责声明:我没有尝试过 - 但它与 OSGi/Eclipse 一致)

于 2009-03-26T20:29:52.000 回答