我想以编程方式检索所有已加载的包。在旧版本中,我们以这种方式使用它:
Field osgiField = EclipseStarter.class.getDeclaredField("osgi");
osgiField.setAccessible(true);
final org.eclipse.osgi.framework.internal.core.OSGi osgi =
(org.eclipse.osgi.framework.internal.core.OSGi) osgiField.get(null);
osgi.getBundleContext().getBundles();
如何在最新的osgi中检索所有已加载的包?
答案 0 :(得分:2)
从bundle中你可以实现BundleActivator接口,并在Manifest中将你的类标记为“BundleActivator:my.ClassName”。
如果不可能,您可以使用FrameworkUtil.getBundle(this.getClass())。getBundleContext()。
另请参阅此问题:Best technique for getting the OSGi bundle context?
然后使用bundleContext.getBundles();
这些方法适用于任何OSGi框架。