[发明专利]运行时类提取的方法和系统有效
申请号: | 201010110578.4 | 申请日: | 2010-02-10 |
公开(公告)号: | CN102147734A | 公开(公告)日: | 2011-08-10 |
发明(设计)人: | 王强 | 申请(专利权)人: | 甲骨文国际公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/455 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 袁玥 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运行 提取 方法 系统 | ||
技术领域
本发明涉及Java运行时环境,尤其涉及提取各种应用的运行时类的装置。
背景技术
软件库是相关目标代码的集合,比如Java语言中的Java类的使用。软件库一般封装在比如Java存档(Jar)文件的模块中。在Java环境中,在运行时,类装载器负责定位库,读取其内容,和把包含在库中的类装载到Java虚拟机(JVM)中。通常类是在程序实际使用这些类中的每个类时按需装载的。类装载器使运行时系统不需要了解底层文件系统及其中文件的准确结构。
企业级软件应用,比如应用服务器,能够包括许多模块或者Jar。每个独立模块或Jar只包含更大应用中的功能的子集。类装载器能够把企业级软件应用的不同模块或Jar装载到虚拟机中,从而提供某些功能。在一些情况下,不是每个模块或Jar都被装载到虚拟机中,因为仅仅使用企业级软件应用的功能的子集。这正是本发明的实施例意图应用于的一般领域。
发明内容
按照一个实施例,在虚拟机上运行的应用包括多个运行时类。类装载器能够把多个运行时类中的一个或多个运行时类装载到虚拟机中,以支持对应用的操作。另外,类装载器能够记录所述一个或多个运行时类中的每个运行时类的上下文信息。根据记录的每个运行时类的上下文信息,能够提取所述一个或多个运行时类。
在一个方面中,一种提取运行时类的方法包括:在虚拟机中建立系统类装载器;支持对在所述虚拟机上运行的应用执行的操作,其中所述应用与多个运行时类关联,并且所述操作与所述多个运行时类中的一个或多个运行时类关联;确定所述一个或多个运行时类中的每个运行时类的类路径信息,其中上下文信息使系统类装载器能够定位所述运行时类,以便将所述运行时类装载到所述虚拟机中;借助所述系统类装载器,记录所述一个或多个运行时类的类路径信息;和根据记录的类路径信息,提取所述一个或多个运行时类。
在另一个方面中,一种提取运行时类的系统包括:系统类装载器;在虚拟机上运行的应用,其中所述应用包括多个运行时类,其中所述多个运行时类中的每一个适于由所述系统类装载器装载到虚拟机中;其中所述系统类装载器与所述虚拟机相关联,并且所述系统类装载器操作以:支持对在所述虚拟机上运行的所述应用执行的操作,其中所述应用与多个运行时类相关联,并且所述操作与所述多个运行时类中的一个或多个运行时类相关联;确定所述一个或多个运行时类中的每个运行时类的类路径信息,其中上下文信息使系统类装载器能够定位所述运行时类,以便将所述运行时类装载到所述虚拟机中;借助所述系统类装载器,记录所述一个或多个运行时类的类路径信息。
在另一个方面中,一种提取运行时类的系统包括:用于在虚拟机中建立系统类装载器的装置;用于支持对在所述虚拟机上运行的应用执行的操作的装置,其中所述应用与多个运行时类相关联,并且所述操作与所述多个运行时类中的一个或多个运行时类相关联;用于确定所述一个或多个运行时类中的每个运行时类的类路径信息的装置,其中上下文信息使系统类装载器能够定位所述运行时类,以便将所述运行时类装载到虚拟机中;用于借助所述系统类装载器,记录所述一个或多个运行时类的类路径信息的装置;和用于根据所记录的类路径信息,提取所述一个或多个运行时类的装置。
附图说明
图1是表示按照一个实施例,虚拟机中的运行时类提取器的一个例子的示图。
图2是表示按照一个实施例,在JVM类装载器层次和委托模型中的运行时类提取器的一个例子的示图。
图3是按照一个实施例的在虚拟机中提取运行时类的方法的流程图。
具体实施方式
附图中举例图解说明了本发明,但不是对本发明的限制,附图中相似的附图标记表示相似的元件。应注意本公开中对“一个”或“一些”实施例的引用不一定指的是相同的实施例,这种引用意味至少一个。
下面的本发明的实施例的描述使用应用服务器功能或库作为应用服务器功能或库的例子。对本领域的技术人员来说,显然可以使用其它种类的应用服务器功能或库,而不受限制。
按照一个实施例,企业级应用服务器可包括许多模块或Jar。可以创建独立的模块或Jar,以包含较大应用中的特定功能子集。创建独立的模块或Jar以只包含特定功能子集的优点在于当仅需要一个功能子集时,通过不包括不必要功能的类或源文件,减小系统和/或应用的整个占用空间(footprint)。
例如,可在web服务客户端侧的独立环境中提供web服务客户端Jar,而不安装应用服务器。可以选择类的最小集合来满足运行时的所有客户端特征的需要,并且仍然使占用空间保持尽可能地小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于甲骨文国际公司,未经甲骨文国际公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010110578.4/2.html,转载请声明来源钻瓜专利网。