我实现了一个功能,即我的osgi正在安装捆绑包,这些捆绑包在启动时或接收新协议时以编程方式在文件系统上表示为jar。 但是,当我收到一个,在启动时已经安装了它,它会因冲突而崩溃。 有没有办法(我不知道ID和名称)如果要更新冲突而不是以编程方式安装?
BundleContext context = FrameworkUtil.getBundle(this.getClass()).getBundleContext();
Bundle bundle = context.getBundle("file:/Path.jar");
希望有人知道......
答案 0 :(得分:0)
我在类似案件中做了什么:
如果您想允许同一个软件包的多个版本,您还可以在更新或安装之前检查软件包的版本。在这种情况下,如果
,我会进行更新如果您关心位置并且它已被更改,请使用bundle.uninstall()和bundlecontext.install(...)重新安装捆绑包,而不是更新(输入流)。
最后,你应该调用refresh()来获得正确的包裹接线。