eclipshine

Eclipse主题站

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。通常这也不是一个好的办法。

posted on 2005-08-14 07:58 Living Not Striving 阅读(1659) 评论(3)  编辑  收藏 所属分类: RCPECLIPSE

评论

# re: Plugin中的Classpath的计算 2005-09-16 10:11 八进制

文章都很好,为何不更新了?  回复  更多评论   

# re: Plugin中的Classpath的计算 2005-09-19 21:49 eclipshine

呵呵,谢谢关注。
这些时比较忙,没时间写东西,过些时可能会更新。
也看过你的Blog,希望多交流。  回复  更多评论   

# re: Plugin中的Classpath的计算 2005-09-20 21:50 gady

写的非常好 正是我所需的 我在用spring中的东西架到eclipse中 老是告诉我加载不到class 后来发现程序不用eclipse classloader 用了别的classloader了 如果早看见这篇文章 我就不用花了几个小时的无用功了 :)
希望你能及时更新 我会始终关注的  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: