2013-02-06 23 views
3

两个bootdelegation和DynamicImport-包之间的差别会解决的OSGi包的依赖就是通过DynamicImport,包装进口他们是什么OSGi的

回答

13

Bootdelegation类加载器加载是一个黑客这是必需的,因为虚拟机内的一些代码假定应用程序类装入器对com.sun。*类具有可见性。在OSGi中,这显然不是这种情况。引导委派是指定框架可以在引导类路径上执行查找的包的参数。由于这不是模块化的,所以不要这样做。这个框架是全球性的。

DynamicImport-Package与此类似,但仅适用于在其中定义并仅用于导出包的包。如果在普通包内容或导入包中找不到包,那么DynamicImport-Package将指定允许在一组导出包中搜索的包的模式。这个想法与类路径相似,你不知道你会得到什么版本。一旦找到包裹,它就会永久使用。但是,如果没有找到每个访问将继续寻找。即您可以在不重新启动软件包的情况下安装软件包。

1

软件包之间的区别都解决了每次需要从包中的类时。所以如果软件包由于解析过程而不可用,它不会失败。 通过这种方式,ClassNotFoundExceptions可能在运行时被抛出。 (与此相比,可选进口)

BootDelegation班将从bootdelegation类加载器,这是它加载OSGi框架到JVM http://wiki.osgi.org/wiki/Boot_Delegation http://www2.sys-con.com/itsg/virtualcd/java/archives/0808/chaudhri/index.html http://de.slideshare.net/honnix/osgi-class-loading

相关问题