osgi能否运行同一捆绑包的多个实例

osgi能否运行同一捆绑包的多个实例,osgi,osgi-bundle,Osgi,Osgi Bundle,我想做的是在同一个JVM上运行以原始模式启动的多个Clojure环境。必须确保它们的名称空间和生成的类不会相互碰撞 看看这个问题:,我需要澄清运行同一服务的多个实例是否会解决名称空间阻塞问题。是的,显然可以,如果使用属性org.osgi.framework.bsversion=multiple启动框架 我从来没有试过用它,不知道是否有效 如果您希望隔离类加载器,最好只为每个实例创建一个子类加载器。您可能询问的是org.osgi.framework.ServiceFactory。是否要指定您计划如

我想做的是在同一个JVM上运行以原始模式启动的多个Clojure环境。必须确保它们的名称空间和生成的类不会相互碰撞


看看这个问题:,我需要澄清运行同一服务的多个实例是否会解决名称空间阻塞问题。

是的,显然可以,如果使用属性
org.osgi.framework.bsversion=multiple
启动框架

我从来没有试过用它,不知道是否有效


如果您希望隔离类加载器,最好只为每个实例创建一个子类加载器。

您可能询问的是
org.osgi.framework.ServiceFactory
。是否要指定您计划如何实例化环境?或者谁来做呢?@MarcosZolnowski,我想建立一个jupyter类型的环境,这样用户可以创建一个笔记本实例,连接到它,进行计算,然后在完成后关闭它。每个笔记本实例都应该有相互分离的环境,包括加载的类。严格来说,您可以安装同一捆绑包/版本组合的多个实例。OSGi框架必须使用属性
org.OSGi.Framework.bsversion=multiple
(请参阅)启动。然而,这并不是OP问题的真正解决方案。这对我来说是新的。它是在OSGi4.3中引入的,对吗?类似的,是的。引入它是为了支持子系统。在我看来,这不是一个好主意。我认为类装入器隔离不能解决这个问题。可能有两个类加载器加载同一个类,并且每个类都会发生碰撞other@NeilBartlett这可能会奏效,但我不确定跟踪将如何工作。