[发明专利]加载JAVA三方库的不同版本的方法和装置有效
申请号: | 201110240907.1 | 申请日: | 2011-08-22 |
公开(公告)号: | CN102262555A | 公开(公告)日: | 2011-11-30 |
发明(设计)人: | 邓鹏;黄山;杨斌 | 申请(专利权)人: | 迈普通信技术股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 牛峥;王丽琴 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 加载 java 三方库 不同 版本 方法 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及JAVA应用程序中三方库的多版本兼容技术,特别涉及一种加载JAVA三方库的不同版本的方法和装置。
背景技术
随着信息技术的发展,计算机应用越来越广泛,各种应用系统相继而生,采用面向对象技术开发应用系统也越来越多,JAVA开发技术得到了广泛的使用,特别是采用JAVA开发一个长期性的、大型的应用程序也就越来越多。
由于JAVA在程序开发中占有的比例越来越大,项目工程也越来越大,这就使得JAVA开发人员不能只基于官方提供的JAVA开发工具包(JDK,JAVADevelopment Kit)来完成一个应用程序的开发,而必须利用各种资源进行整合来进行快速开发,在这个过程中使用已经很成熟的三方库也就越来越迫切。所谓三方库,就是由第三方提供的库文件,其中包含了可以直接使用的变量、函数或类。
现今,免费的、付费的三方库越来越多,在任何一个采用JAVA开发的应用程序产品中,都会或多或少地使用三方库。并且照目前的趋势来看,未来使用三方库的开发过程还会继续增长,对三方库的要求也会随之不断提高。因此,三方库的内容也在不断地扩充,这就使得三方库的版本越来越多,版本也在不断地升级。在三方库不断升级的过程中,功能的兼容性会存在一定的问题。
一般而言,JAVA应用程序中尽量引用一个版本的三方库。但是在开发过程中,对三方库的升级要求也越来越明显,随着JAVA应用程序的不断开发,需要使用新版本的三方库;但是JAVA应用程序的一些早期模块又需要老版本的三方库,这样一个JAVA应用程序可能需要同一个三方库的不同版本,这就可能使用三方库的版本中起了冲突。
在现有技术中,JAVA应用程序进行三方库升级只能进行源代码修改,使得同一个三方库的不同版本分别形成一个独立的三方库,也就是说,将同一个三方库的不同版本分别变成不同的三方库,从而完成三方库的升级。但是这样带来了很大的工作量和维护工作。
发明内容
针对现有技术的不足,本发明提供了一种JAVA三方库管理方法和装置,能够根据模块需要自动引用所需版本的三方库,避免三方库的版本冲突。
本发明实施例提供一种加载JAVA三方库的不同版本的方法,包括如下步骤:
A、构建一个用于构建类加载管理器和各个模块的模块类加载器的启动管理单元,实现JAVA应用程序启动前的初始化;
B、在所述启动管理单元中启动JAVA应用程序,通过类加载管理器加载JAVA应用程序的类,根据模块的类的特征找到对应的模块类加载器实现模块的类的加载,其中至少两个模块中存在不同版本的相同三方库。
较佳地,步骤A包括:
A1、构建用于根据待加载类的特征来使用相应的类加载器的类加载管理器;
A2、构建各个模块的模块类加载器,其中至少两个模块中存在不同版本的相同三方库;
A3、构建各个模块的类的特征和模块类加载器的映射关系,并添加到类加载管理器中。
较佳地,步骤A还包括:
A4、构建用于加载无三方库要求的模块中的类和JAVA应用程序启动类的平台类加载器。
较佳地,步骤B包括:
B1、通过类加载管理器加载JAVA应用程序启动类;
B2、通过启动JAVA应用程序启动类启动JAVA应用程序;
B3、JAVA应用程序加载模块的类时,检测加载类特征,根据预先定义的模块的类的特征与模块类加载器的映射关系,在加载类时采用对应的模块类加载器;
B4、如果未找到合适的模块类加载器,再使用平台类加载器加载无三方库要求的模块。
较佳地,在通过线程类加载器加载对象之前,在JAVA应用程序执行过程中动态修改线程类加载器。
本发明实施例还提供一种加载同一个JAVA三方库的不同版本的装置,包括:
启动管理单元,用于构建类加载管理器和模块类加载器;并用于实现JAVA应用程序启动的初始并启动JAVA应用程序,通过反射的方式执行JAVA应用程序启动类;
类加载管理器,用于接收JAVA应用程序对类的加载请求,并管理JAVA应用程序的各个模块的类加载器;根据待加载类的特征来使用相应的类加载器,其中包括使用模块类加载器;
至少两个模块类加载器,所述模块类加载器用于实现模块的类的加载,至少两个模块中存在不同版本的相同三方库。
较佳地,该装置进一步包括:
平台类加载器,用于加载JAVA应用程序的平台部分。
较佳地,该装置进一步包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈普通信技术股份有限公司,未经迈普通信技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110240907.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种中小跨径混凝土桥梁养护的决策方法
- 下一篇:光扫描装置以及成像装置