CN105068852A - 云计算环境下实现Java类在线热更新的系统与方法 - Google Patents
云计算环境下实现Java类在线热更新的系统与方法 Download PDFInfo
- Publication number
- CN105068852A CN105068852A CN201510606944.8A CN201510606944A CN105068852A CN 105068852 A CN105068852 A CN 105068852A CN 201510606944 A CN201510606944 A CN 201510606944A CN 105068852 A CN105068852 A CN 105068852A
- Authority
- CN
- China
- Prior art keywords
- class
- module
- managed object
- heat
- factory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种云计算环境下实现Java类在线热更新的系统与方法,其中包括自定义加载模块,用以加载需要热更新类的自定义类加载器;类扫描模块,用以对目标目录进行类文件扫描并通知热更新模块;热更新模块,用以对需要进行热更新的类进行热更新;受管对象创建工厂模块,用以创建作为受管对象的热更新的类的具体实例。采用该种结构的云计算环境下实现Java类在线热更新的系统与方法,使生产环境中的系统不停机成为可能,当生产系统需要打补丁或升级时,只需要提供要更新的类文件即可,无需停机重启,即时更新,即时生效,极大的提高了运维效率,降低了运维成本,避免了停机事故;适用范围较为广泛,为企业应用软件技术的进一步发展打下了坚实的基础。
Description
技术领域
本发明涉及计算机系统技术领域,尤其涉及企业应用系统技术领域,具体是指一种云计算环境下实现Java类在线热更新的系统与方法。
背景技术
随着信息技术的发展,许多线下的业务模式正在通过互联网在线上实现虚拟化,通过线下和线上的融合可以最大限度的确保用户体验。比如某数码品牌门店,线下的实体门店可以成为用户的体验场所和仓储中心,而线上系统则可以成为传统实体店突破空间和时间限制的24小时不打烊卖场。线上系统想要提供类似7×24小时的用户体验,这就对IT系统建设提出了更高的要求。
在基于Java的应用系统中,如果需要对生产系统升级或者打补丁,一般保守的做法是先停止服务,再升级系统,最后重启服务,在整个升级期间,系统是不可用的。为解决这一问题,出现了一种灰度发布的方式,即一次只升级一部分系统,这样可以始终保证有一部分系统是可用的,之后再逐步扩大升级范围,直至全部升级完成。采用灰度发布能在一定程度上解决因系统升级带来的服务不可用的问题,但是,这仍然没有彻底解决需要停止服务的问题。
假设有这样一个系统,因为发现了一个bug或者调整业务规则需要修改其中一个Class类,仅仅就为了更新一个类,就需要对系统进行一次升级。如果没有Class的热更新机制,这样的代价是很大的。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现,使生产环境中的系统不停机成为可能、应用范围广泛的云计算环境下实现Java类在线热更新的系统与方法。
为了实现上述目的,本发明的云计算环境下实现Java类在线热更新的系统与方法具有如下构成:
该云计算环境下实现Java类在线热更新的系统,其主要特点是,所述的系统包括:
自定义加载模块,用以加载需要热更新类的自定义类加载器;
类扫描模块,用以对目标目录进行类文件扫描并通知热更新模块;
热更新模块,用以对需要进行热更新的类进行热更新;
受管对象创建工厂模块,用以创建作为受管对象的热更新的类的具体实例。
本发明还涉及一种云计算环境下实现Java类在线热更新的方法,其特征在于,所述的方法包括以下步骤:
(1)系统启动时,所述的类扫描模块扫描目标目录的类文件;
(2)系统将扫描结果注册至模型注册器;
(3)使用受管对象实例的模块向所述的受管对象创建工厂模块发出使用请求;
(4)所述的自定义类加载模块加载需要热更新类的自定义类加载器;
(5)所述的受管对象创建工厂模块通过所述的自定义类加载器创建受管对象的具体实例;
(6)系统运行期间,当热更新事件被触发,所述的热更新模块执行热更新。
较佳地,所述的扫描目标目录的类文件,包括如下步骤:
(1-1)递归遍历特定目录下的所有后缀为.class的文件并确定需要热更新的类;
(1-2)在模型注册器中保存物理类文件的信息。
较佳地,所述的自定义类加载模块加载需要热更新类的自定义类加载器,包括以下步骤:
(4-1)所述的自定义类加载模块进行初始化;
(4-2)所述的自定义类加载模块重写父类的类寻找方法并加载类模型。
更佳地,所述的自定义类加载模块重写父类的类寻找方法并加载类模型,包括以下步骤:
(4-2-1)根据类寻找方法传入类名并使用父加载器加载以及判断是否加载成功,如果是,则继续步骤(4-2-3),如果否,则继续步骤(4-2-2);
(4-2-2)读取该物理文件至byte数组中,调用父类的defineClass方法由JVM完成加载,然后继续步骤(4-2-3);
(4-2-3)所述的受管对象创建工厂将加载成功的类模型向模型注册器注册。
较佳地,所述的创建受管对象的具体实例,包括以下步骤:
(5-1)所述的受管对象创建工厂模块判断所述的模型注册器的缓存中是否存在类模型,如果是,则继续步骤(5-2),否则继续步骤(5-3);
(5-2)所述的受管对象创建工厂模块从所述的模型注册器的缓存中获取类模型,然后继续步骤(5-4);
(5-3)所述的自定义类加载模块创建自定义加载器并用新创建的自定义加载器加载该类模型,然后继续步骤(5-4);
(5-4)所述的受管对象创建工厂模块根据所述的类模型创建受管对象的具体实例;
(5-5)受管对象创建工厂模块将受管对象、具体实例及自定义类加载器注册至模型注册器;
(5-6)返回受管对象的具体实例。
较佳地,所述的热更新模块执行热更新,包括以下步骤:
(6-1)所述的热更新模块从触发事件中获取需要热更新的类相关信息;
(6-2)所述的热更新模块根据类唯一名称从模型注册器中移除该类所关联的受管对象、具体实例及自定义类加载器;
(6-3)所述的热更新模块通知使用受管对象实例的模块类文件发生变更需重新加载。
更佳地,所述的通知使用受管对象实例的模块类文件发生变更需重新加载,包括以下步骤:
(6-3-1)使用受管对象实例的模块统一热更新通知接口并将实现类注册至所述的热更新服务模块;
(6-3-2)依次调用实现了热更新通知接口的实现类的通知方法将此次更新的类名包装为事件对象传入;
(6-3-3)在实现类中,移除旧的受管对象的实例的引用;
(6-3-4)重新向所述的受管对象创建工厂模块提出对象使用申请;
(6-3-5)由受管对象创建工厂模块完成新类的初始及加载工作,并重新在模型注册器中注册。
采用了该发明中的云计算环境下实现Java类在线热更新的系统与方法,使生产环境中的系统不停机成为可能,当生产系统需要打补丁或升级时,只需要提供要更新的类文件即可,无需停机重启,即时更新,即时生效,极大的提高了运维效率,降低了运维成本,避免了停机事故;同时还增强了系统可移植性和可扩展性;不仅如此,该方法还能够快速响应业务需求的变化和技术变化,能够支撑建立高度模块化而且又高度整合的软件系统,适用范围较为广泛,为企业应用软件技术的进一步发展打下了坚实的基础。
附图说明
图1为本发明的云计算环境下实现Java类在线热更新的方法的对象依赖关系图。
图2为本发明的云计算环境下实现Java类在线热更新的方法的热更新过程流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明提出一种云计算环境下实现Java类在线热更新的方法。在技术实现上,要做到Class热替换,必须要解决两个问题:
一是旧的Class要被正确回收,如果不回收,多次替换或者有大量Class替换,势必有OOM的风险,增加系统隐患;对于JVM来说,类的回收是比较苛刻的,需要同时满足下面3个条件:
A、该类所有的实例都已经被GC,也就是JVM中不存在该Class的任何实例。
B、加载该类的ClassLoader已经被GC。
C、该类对应的java.lang.Class对象没有在任何地方被引用,如不能在任何地方通过反射访问该类的方法。
保证旧的类被回收,是实现热替换的前提条件。
二是新的Class要被正确加载,众所周知,在JVM中,同名的Class在同一个ClassLoader中不允许被重复加载,如何突破这一限制,这也是实现热替换的关键所在。
本发明针对上述两个问题提出解决方案,既保证了旧的Class被回收,又保证新的Class被正确加载,实现了真正意义上的热替换。
此发明的关键设计点即在于如图1所示的模型设计。采用一对一的加载模型设计,能够达到JVM对类回收的三个条件,从而有效保证旧的Class能被正确回收,使运行期动态热更新Class成为可能。该一对一的加载模型与OSGi中bundle的类加载机制异曲同工,在OSGi中,一个bundle会对应一个ClassLoader,本发明的实现是一个业务类对应一个ClassLoader,只有这样,才保证了业务类能够像bundle一样做到热更新。
该发明实现了云计算环境下Java类在线热更新,其实现方案包含的主要模块如下:
1、自定义类加载模块:用于加载需要热更新类的自定义ClassLoader。本实例中以java.lang.ClassLoader为父类实现。
2、类加载器:对目标目录进行定时或手工扫描,并通知热更新模块。本实例以扫描固定目录下的类文件为例。
3、热更新模块:对需要进行热更新的类进行热更新。
4、受管对象创建工厂模块:热更新的类在系统中是受管对象,该模块负责创建受管对象的具体实例。
所述的在云计算环境下实现Java类在线热更新的方法,包括如下步骤(其序列图参见图2):
(1)系统启动时通过类加载器,扫描目标目录的类文件;
(2)扫描完成后,将扫描结果注册至模型注册器;
(3)系统中受管对象实例的使用者向受管对象创建工厂模块发出使用请求;
(4)受管对象创建工厂模块通过自定义类加载模块加载的Class,并创建受管对象的具体实例;
(5)系统启动成功;
(6)系统运行期,热更新事件被自动或手动触发,事件响应动作中调用热更新模块执行热更新。
所述的加载目标目录的类文件包括如下步骤:
1、递归遍历特定目录下的所有后缀为.class的文件,本例将WAR目录中的WEB-INF\dynclasses目录作为存放需热更新class的保存目录,意味着仅此目录中的Class支持热更新。
2、在模型注册器中保存物理类文件的绝对路径、时间戳、File模型等信息。
所述的自定义类加载模块加载类文件包括如下处理步骤:
(1)自定义类加载器执行初始化动作:设置父的加载器等;
(2)重写父类的findClass方法,其主要处理步骤如下:
(2.1)根据findClass方法中传入类名,先使用父加载器加载,如果父加载器能够加载,则直接返回;
(2.2)如果不能加载,根据类名从模型注册器中寻找对应的物理文件;
(2.3)读取该物理文件至byte数组中,调用父类的defineClass方法由JVM完成加载;
伪代码描述如下:
所述的受管对象创建工厂创建受管对象的具体实例的具体步骤如下:
(1)系统中需使用受管对象实例的模块向受管对象创建工厂模块发出使用请求,即在使用实例类的地方调用工厂模块的createManagedBean方法;
(2)受管对象创建工厂从模型注册器的缓存中获取到Class模型,如有,则直接从缓存中获取,至第四步;如没有,至第三步;
(3)如果未缓存,则新创建一个自定义类加载器,用该加载器去加载该class。(此处是关键设计,这样的一对一的加载模型,能有效保证class的回收,其在内存中的依赖关系见图1);
(4)根据Class模型创建受管对象的具体实例;
(5)将受管对象、具体实例及自定义类加载器注册至模型注册器(模型注册器中通过key-value方式存储映射关系,key为class唯一类名,value为其对应的类文件物理模型、受管对象、具体实例及唯一关联的自定义类加器实例);
(6)返回受管对象的具体实例。
所述的事件响应动作中调用热更新模块执行热更新包括如下处理步骤:
(1)触发热更新事件,热更新事件可以由用户手工触发或者系统定时触发(如按一定时间隔扫描Class的更改);
(1.1)手工触发是指用户通过系统的文件上传接口,上传了一个或多个需要热更新的class物理文件到前述的扫描目录,然后调用热更新服务的refresh方法;
(1.2)定时触发是指系统中存在一个定时运行任务,该运行任务定时遍历前述的扫描目录,通过与内存中的类文件进行时间戳比较,找出被修改类文件,然后调用热更新服务的refresh方法;
(2)从事件信息中获取到需要热更新的Class相关信息,包括文件路径、时间戳、File模型等;
(3)根据Class唯一名称从模型注册器中移除该Class所关联的受管对象、具体实例及自定义类加载器。
(4)通知使用受管对象实例的其它系统模块,通知其类文件发生变更,需重新加载,其具体步骤如下:
(4.1)使用受管对象实例的其它系统模块实现了统一的热更新通知接口,其实现类已注册至热更新服务模块;
热更新通知接口定义如下:
(4.2)依次调用实现了热更新通知接口的实现类的通知方法(上述接口的notify方法),将此次更新的类名包装为事件对象传入;
(4.3)在实现类中,移除旧的受管对象实例的引用;
(4.4)重新向受管对象创建工厂提出对象使用申请,由受管对象创建工厂完成新class的初始及加载工作,并重新在模型注册器中注册。
采用了该发明中的云计算环境下实现Java类在线热更新的系统与方法,使生产环境中的系统不停机成为可能,当生产系统需要打补丁或升级时,只需要提供要更新的类文件即可,无需停机重启,即时更新,即时生效,极大的提高了运维效率,降低了运维成本,避免了停机事故;同时还增强了系统可移植性和可扩展性;不仅如此,该方法还能够快速响应业务需求的变化和技术变化,能够支撑建立高度模块化而且又高度整合的软件系统,适用范围较为广泛,为企业应用软件技术的进一步发展打下了坚实的基础。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (8)
1.一种云计算环境下实现Java类在线热更新的系统,其特征在于,所述的系统包括:
自定义加载模块,用以加载需要热更新类的自定义类加载器;
类扫描模块,用以对目标目录进行类文件扫描并通知热更新模块;
热更新模块,用以对需要进行热更新的类进行热更新;
受管对象创建工厂模块,用以创建作为受管对象的热更新的类的具体实例。
2.一种基于权利要求1所述的系统于云计算环境下实现Java类在线热更新的方法,其特征在于,所述的方法包括以下步骤:
(1)系统启动时,所述的类扫描模块扫描目标目录的类文件;
(2)系统将扫描结果注册至模型注册器;
(3)使用受管对象实例的模块向所述的受管对象创建工厂模块发出使用请求;
(4)所述的自定义类加载模块加载需要热更新类的自定义类加载器;
(5)所述的受管对象创建工厂模块通过所述的自定义类加载器创建受管对象的具体实例;
(6)系统运行期间,当热更新事件被触发,所述的热更新模块执行热更新。
3.根据权利要求2所述的云计算环境下实现Java类在线热更新的方法,其特征在于,所述的扫描目标目录的类文件,包括如下步骤:
(1-1)递归遍历特定目录下的所有后缀为.class的文件并确定需要热更新的类;
(1-2)在模型注册器中保存物理类文件的信息。
4.根据权利要求2所述的云计算环境下实现Java类在线热更新的方法,其特征在于,所述的自定义类加载模块加载需要热更新类的自定义类加载器,包括以下步骤:
(4-1)所述的自定义类加载模块进行初始化;
(4-2)所述的自定义类加载模块重写父类的类寻找方法并加载类模型。
5.根据权利要求4所述的云计算环境下实现Java类在线热更新的方法,其特征在于,所述的自定义类加载模块重写父类的类寻找方法并加载类模型,包括以下步骤:
(4-2-1)根据类寻找方法传入的类名并使用父加载器加载以及判断是否加载成功,如果是,则继续步骤(4-2-3),如果否,则继续步骤(4-2-2);
(4-2-2)读取该物理文件至byte数组中,调用父类的defineClass方法由JVM完成加载,然后继续步骤(4-2-3);
(4-2-3)所述的受管对象创建工厂将加载成功的类模型向模型注册器注册。
6.根据权利要求2所述的云计算环境下实现Java类在线热更新的方法,其特征在于,所述的创建受管对象的具体实例,包括以下步骤:
(5-1)所述的受管对象创建工厂模块判断所述的模型注册器的缓存中是否存在类模型,如果是,则继续步骤(5-2),否则继续步骤(5-3);
(5-2)所述的受管对象创建工厂模块从所述的模型注册器的缓存中获取类模型,然后继续步骤(5-4);
(5-3)所述的自定义类加载模块创建自定义加载器并用新创建的自定义加载器加载该类模型,然后继续步骤(5-4);
(5-4)所述的受管对象创建工厂模块根据所述的类模型创建受管对象的具体实例;
(5-5)受管对象创建工厂模块将受管对象、具体实例及自定义类加载器注册至模型注册器;
(5-6)返回受管对象的具体实例。
7.根据权利要求2所述的云计算环境下实现Java类在线热更新的方法,其特征在于,所述的热更新模块执行热更新,包括以下步骤:
(6-1)所述的热更新模块从触发事件中获取需要热更新的类相关信息;
(6-2)所述的热更新模块根据类唯一名称从模型注册器中移除该类所关联的受管对象、具体实例及自定义类加载器;
(6-3)所述的热更新模块通知使用受管对象实例的模块类文件发生变更需重新加载。
8.根据权利要求7所述的云计算环境下实现Java类在线热更新的方法,其特征在于,所述的通知使用受管对象实例的模块类文件发生变更需重新加载,包括以下步骤:
(6-3-1)使用受管对象实例的模块统一热更新通知接口并将实现类注册至所述的热更新服务模块;
(6-3-2)依次调用实现了热更新通知接口的实现类的通知方法将此次更新的类名包装为事件对象传入;
(6-3-3)在实现类中,移除旧的受管对象的实例的引用;
(6-3-4)重新向所述的受管对象创建工厂模块提出对象使用申请;
(6-3-5)由受管对象创建工厂模块完成新类的初始及加载工作,并重新在模型注册器中注册。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510606944.8A CN105068852A (zh) | 2015-09-22 | 2015-09-22 | 云计算环境下实现Java类在线热更新的系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510606944.8A CN105068852A (zh) | 2015-09-22 | 2015-09-22 | 云计算环境下实现Java类在线热更新的系统与方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105068852A true CN105068852A (zh) | 2015-11-18 |
Family
ID=54498230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510606944.8A Pending CN105068852A (zh) | 2015-09-22 | 2015-09-22 | 云计算环境下实现Java类在线热更新的系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105068852A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389186A (zh) * | 2015-11-20 | 2016-03-09 | 福建亿榕信息技术有限公司 | 一种Java应用的热部署方法及系统 |
CN106055368A (zh) * | 2016-06-02 | 2016-10-26 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
CN106484487A (zh) * | 2016-10-27 | 2017-03-08 | 北京锐安科技有限公司 | 一种系统补丁的处理方法及装置 |
CN106598663A (zh) * | 2016-12-09 | 2017-04-26 | 北京恒华伟业科技股份有限公司 | 一种web应用更新方法及web服务器 |
CN106980512A (zh) * | 2017-05-15 | 2017-07-25 | 中国建设银行股份有限公司 | 更新java应用服务的系统及方法 |
CN107239313A (zh) * | 2017-06-09 | 2017-10-10 | 中国建设银行股份有限公司 | Spring应用服务的升级方法和存储介质 |
CN108228717A (zh) * | 2017-12-06 | 2018-06-29 | 五八有限公司 | 页面的加载方法及装置 |
CN109729121A (zh) * | 2017-10-31 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 一种云存储系统及用于云存储系统中实现自定义数据处理的方法 |
CN111026418A (zh) * | 2019-10-31 | 2020-04-17 | 杭州腾纵科技有限公司 | 一种可自动热更新的农贸市场收银系统 |
CN111078256A (zh) * | 2019-12-20 | 2020-04-28 | 广州品唯软件有限公司 | 自动化测试环境的升级方法、终端及可读存储介质 |
CN111491018A (zh) * | 2020-04-07 | 2020-08-04 | 中国建设银行股份有限公司 | 模型下载方法及系统 |
CN111538545A (zh) * | 2020-04-23 | 2020-08-14 | 京东方科技集团股份有限公司 | Java应用运行方法、装置、介质及电子设备 |
CN113656057A (zh) * | 2021-08-26 | 2021-11-16 | 深圳市天天来玩科技有限公司 | 一种java文件更新方法、网络设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370322B1 (en) * | 2001-04-11 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for performing online application upgrades in a java platform |
CN101963914A (zh) * | 2010-11-12 | 2011-02-02 | 南京大学 | 一种基于字节码文件重构的Java类在线更新方法 |
CN102141919A (zh) * | 2010-01-28 | 2011-08-03 | 北京邮电大学 | 模块化java应用软件在线更新系统及方法 |
CN102436373A (zh) * | 2011-09-13 | 2012-05-02 | 上海普元信息技术股份有限公司 | 企业分布式应用系统中实现资源加载及资源热更新的方法 |
-
2015
- 2015-09-22 CN CN201510606944.8A patent/CN105068852A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370322B1 (en) * | 2001-04-11 | 2008-05-06 | Sun Microsystems, Inc. | Method and apparatus for performing online application upgrades in a java platform |
CN102141919A (zh) * | 2010-01-28 | 2011-08-03 | 北京邮电大学 | 模块化java应用软件在线更新系统及方法 |
CN101963914A (zh) * | 2010-11-12 | 2011-02-02 | 南京大学 | 一种基于字节码文件重构的Java类在线更新方法 |
CN102436373A (zh) * | 2011-09-13 | 2012-05-02 | 上海普元信息技术股份有限公司 | 企业分布式应用系统中实现资源加载及资源热更新的方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389186A (zh) * | 2015-11-20 | 2016-03-09 | 福建亿榕信息技术有限公司 | 一种Java应用的热部署方法及系统 |
CN106055368A (zh) * | 2016-06-02 | 2016-10-26 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
CN106055368B (zh) * | 2016-06-02 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 应用更新方法和装置 |
CN106484487B (zh) * | 2016-10-27 | 2019-11-12 | 北京锐安科技有限公司 | 一种系统补丁的处理方法及装置 |
CN106484487A (zh) * | 2016-10-27 | 2017-03-08 | 北京锐安科技有限公司 | 一种系统补丁的处理方法及装置 |
CN106598663A (zh) * | 2016-12-09 | 2017-04-26 | 北京恒华伟业科技股份有限公司 | 一种web应用更新方法及web服务器 |
CN106980512A (zh) * | 2017-05-15 | 2017-07-25 | 中国建设银行股份有限公司 | 更新java应用服务的系统及方法 |
CN107239313A (zh) * | 2017-06-09 | 2017-10-10 | 中国建设银行股份有限公司 | Spring应用服务的升级方法和存储介质 |
CN109729121A (zh) * | 2017-10-31 | 2019-05-07 | 阿里巴巴集团控股有限公司 | 一种云存储系统及用于云存储系统中实现自定义数据处理的方法 |
CN108228717A (zh) * | 2017-12-06 | 2018-06-29 | 五八有限公司 | 页面的加载方法及装置 |
CN111026418A (zh) * | 2019-10-31 | 2020-04-17 | 杭州腾纵科技有限公司 | 一种可自动热更新的农贸市场收银系统 |
CN111078256A (zh) * | 2019-12-20 | 2020-04-28 | 广州品唯软件有限公司 | 自动化测试环境的升级方法、终端及可读存储介质 |
CN111078256B (zh) * | 2019-12-20 | 2024-02-02 | 广州品唯软件有限公司 | 自动化测试环境的升级方法、终端及可读存储介质 |
CN111491018A (zh) * | 2020-04-07 | 2020-08-04 | 中国建设银行股份有限公司 | 模型下载方法及系统 |
CN111538545A (zh) * | 2020-04-23 | 2020-08-14 | 京东方科技集团股份有限公司 | Java应用运行方法、装置、介质及电子设备 |
CN113656057A (zh) * | 2021-08-26 | 2021-11-16 | 深圳市天天来玩科技有限公司 | 一种java文件更新方法、网络设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105068852A (zh) | 云计算环境下实现Java类在线热更新的系统与方法 | |
CN100449524C (zh) | 维护基于组件的软件产品 | |
CN104793946B (zh) | 基于云计算平台的应用部署方法和系统 | |
CN108845812B (zh) | 插件更新方法、装置、计算机设备和存储介质 | |
US8233893B2 (en) | Mobile handset update package generator that employs nodes technique | |
US8490082B2 (en) | System and method for representing user processes as software packages in a software package management system | |
CN110995473B (zh) | 一种业务节点的控制方法及相关设备 | |
TW591416B (en) | Localized read-only storage device for distributing files over a network | |
CN101241438B (zh) | 更改信息处理系统中的软件组件的方法和装置 | |
CN100489778C (zh) | Java程序可动态更新化实现方法 | |
WO2013078951A1 (zh) | 软件升级方法和系统 | |
CN102760068B (zh) | 一种ActiveX插件加载方法和装置 | |
US20070101197A1 (en) | System and method for representing system capabilities as software packages in a software package management system | |
EP2513787A1 (en) | Method, computer program product, and system for non-blocking dynamic update of statically typed class-based object-oriented software | |
WO2009032232A1 (en) | Bootstrapper and software download manager | |
CN103221919A (zh) | 在操作系统(os)缺席的服务环境中供应固件的方法 | |
CN101095111A (zh) | 一种维护计算装置中的应用程序的方法 | |
CN102402427A (zh) | 一种Java应用程序的更新方法及装置 | |
US20100312879A1 (en) | Plug-in provisioning integration in a clustered environment | |
US20130212595A1 (en) | Dynamic injection of code into running process | |
CN103345411A (zh) | 卸载应用程序的方法及装置 | |
US6665671B2 (en) | System and method for optimization of shared data | |
JP4717426B2 (ja) | 情報処理装置及びその方法 | |
US20110078659A1 (en) | Java-Based Application Server that Supports Multiple Component Models | |
CN101051307A (zh) | 应用文件更新系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151118 |