Plugin中的Classpath的计算

基本规则:每一个Plugin都有自己独立的ClassLoader,因此也有独立的classpath。这个Classpath按顺序由如下的几个部分组成:
1. The OSGi parent class loader。所有在OSGi中的的class loader均有一个公共的parent class loader。在缺省时,这就是java boot class loader。boot loader通常只知道rt.jar,但是这个boot classpath可以通过java命令来添加。
2. 所有imported plugin的exported libaries。、
3. plugin及其fragments所声明的libraries。
 
由上可知, 要添加一个Jar到一个plug-in的classpath,可以有如下的几种办法:
1. 添加到boot classpath,虽然这样做很简单,但通常这并不是一个好办法,它会影响到所有安装的plugin。
2. 可以将Jar添加到这个plugin的declared libraries中。这是可行的,如果其它的plugin并不使用到这个Jar的话。
3. 创建一个新的plugin来wrap这个library。在将这个plugin添加到requried plugin中去。 这种是官方推荐的方法。缺点是会对特定版本的插件形成依赖。
4. OSGi的parent loadre可以通过osgi.parentClassloader系统变量来改变,并由此改变classpath。通常这也不是一个好的办法。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值