[发明专利]一种类文件装载方法和系统有效

专利信息
申请号: 200710163895.0 申请日: 2007-10-11
公开(公告)号: CN101126988A 公开(公告)日: 2008-02-20
发明(设计)人: 游兴旺 申请(专利权)人: 金蝶软件(中国)有限公司
主分类号: G06F9/445 分类号: G06F9/445
代理公司: 北京集佳知识产权代理有限公司 代理人: 逯长明
地址: 518057广东省深圳市南*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 种类 文件 装载 方法 系统
【说明书】:

技术领域

发明涉及类装载领域,特别是涉及一种类文件的装载方法和系统。

背景技术

基于java的大型企业软件,如基于java的ERP(企业资源计划,EnterpriseResource Planning)软件可能存在成百上千个jar文件,并且需要装载的组件可能来自第三方系统,在启动与运行这样的软件系统时,为了提高启动与运行时系统的效率、获得良好的性能,需要JVM(Java Virtual Machine,java虚拟机)快速查找定位与装载相关的类(class)文件和资源文件。

Java虚拟机(JVM)的类装载就是将包含在类文件中的字节码装载到JVM中,但是类装载器(classloader)也不是原封不动的装载到JVM,它是将类(class)文件中的内容转换成JVM使用的类字节码,通过类装载器装载到JVM中的字节码数据,从而成为可执行的代码。

类装载是java语言提供的最强大的机制之一,一个类代表要执行的代码,而数据则表示其相关状态。状态时常改变,而代码则不会。当我们将一个特定的状态与一个类相对应起来,也就意味着将一个类事例化。尽管相同的类对应的实例其状态千差万别,但其本质都对应着同一段代码。一旦一个类被载入Java虚拟机中,同一个类就不会被再次载入了。java的类装载机制是在同一个JVM中,按类路径的层次和顺序装载类文件。

假定有一个大型的Java应用,它需要从c:/app/path1;d:/path2;d:/app/path3三个目录下装载java运行的组件,其中path1下有A1.jar,A2.jar,A3.jar......An.jar;path2目录下有B1.jar,B2.jar,B3.jar......Bn.jar;path3目录下存在C1.jar,C2.jar,C3.jar......Cn.jar,其启动类为com.app.MainClass,存放在C3.jar的com/app目录下。现有技术中Java标准的启动方式为:java-cpc:/app/path1/A1.jar;......;C:/app/path1/An.jar;d:/path2/B1.jar;......d:/path2/Bn.jar;d:/app/path3/C1.jar;......;d:/app/path3/Cn.jar com.app.MainClass。其中java为java程序启动命令,-cp后面是java应用所需要的所有java组件列表,即java类路径,com.app.MainClass就是java应用启动类。

执行所述命令时,首先启动java虚拟机,完成相关初始化工作后,虚拟机开始装载应用需要的第一个类文件com.app.MainClass,由于标准的java虚拟机并不知道这个类文件在哪个jar文件中,所以虚拟机必须根据-cp后面的类路径逐个打开jar文件,顺序查找该jar文件中是否包含com.app.MainClass。

由于jar文件比较多,而且每个jar文件包含了大量的class文件。按上面的方式装载class文件,会存在系统在启动与运行时造成效率低下、性能差的问题;进一步,由于所有操作系统启动程序的命令行都有大小限制,如window默认为8000个字符,并且需要装载的文件多,从而导致类路径过长,超出操作系统限制;而且java虚拟机为了提高系统启动时的效率,避免反复打开/关闭文件,会缓存每个jar文件句柄,这样就可能导致程序运行时打开的文件句柄过多,而操作系统对每个程序进程打开的文件句柄数一般是有限制的,因此大量的文件句柄会也会导致系统存在效率低下、性能差的问题,并且还会导致运行时出现异常。

发明内容

本发明所要解决的技术问题是提供一种类文件的装载方法,能够在装载类文件时不按照java默认顺序查找、装载类文件,解决java默认顺序查找导致的性能问题,提高系统启动、运行时类文件的装载效率。

为了解决上述问题,本发明公开了一种类文件装载方法,包括步骤:

自定义一个类装载器替换java虚拟机默认的系统类装载器;

根据自定义的类装载器规则,生成java应用所需jar文件的索引文件;

Java虚拟机启动所述自定义的类装载器,初始化自定义类装载器;

自定义类装载器装载类文件。

其中,所述自定义类装载器装载类文件的具体步骤为:

自定义类装载器请求上一级的应用类装载器装载类文件,如果所述应用类装载器装载不成功,则:

自定义类的类装载器根据所述索引文件装载类文件。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200710163895.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top