<分区>
Eclipse 是基于 OSGi 模型设计的。 OSGi 模型声明它支持热安装和卸载 bundle 。所以我很困惑为什么Eclipse总是需要重启才能进行新的安装插件工作。是 OSGi 模型不够好还是 Eclipse 没有实现整个模型?
<分区>
Eclipse 是基于 OSGi 模型设计的。 OSGi 模型声明它支持热安装和卸载 bundle 。所以我很困惑为什么Eclipse总是需要重启才能进行新的安装插件工作。是 OSGi 模型不够好还是 Eclipse 没有实现整个模型?
最佳答案
OSGi 模型运行良好,但动态并不是免费的。捆绑代码需要以能够应对来来去去的服务的方式编写。
Eclipse 有两个问题。首先,有大量不具有动态感知能力的遗留插件,它们是由坦率的平庸开发人员编写的。其次,Eclipse 一直回避 OSGi 的服务部分,而是偏爱“扩展注册表”,它具有更静态和笨拙的生命周期(实际上,可能使用扩展注册表处理动态更新,但更难比使用 OSGi 服务时)。
实际上,在许多情况下,Eclipse 可以动态处理插件的添加,这就是安装对话框为您提供执行此操作的选项的原因。但由于第三方插件的质量参差不齐,安全起见,建议重启。
关于java - 为什么基于OSGi模型的Eclipse安装新插件后需要重启?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19440674/