CN116501348A - 一种基于java虚拟机的热更新java代码的方法 - Google Patents

一种基于java虚拟机的热更新java代码的方法 Download PDF

Info

Publication number
CN116501348A
CN116501348A CN202310382471.2A CN202310382471A CN116501348A CN 116501348 A CN116501348 A CN 116501348A CN 202310382471 A CN202310382471 A CN 202310382471A CN 116501348 A CN116501348 A CN 116501348A
Authority
CN
China
Prior art keywords
java
code
tree
version number
class
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.)
Granted
Application number
CN202310382471.2A
Other languages
English (en)
Other versions
CN116501348B (zh
Inventor
金震
张京日
张金平
石晓文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing SunwayWorld Science and Technology Co Ltd
Original Assignee
Beijing SunwayWorld Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing SunwayWorld Science and Technology Co Ltd filed Critical Beijing SunwayWorld Science and Technology Co Ltd
Priority to CN202310382471.2A priority Critical patent/CN116501348B/zh
Publication of CN116501348A publication Critical patent/CN116501348A/zh
Application granted granted Critical
Publication of CN116501348B publication Critical patent/CN116501348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于java虚拟机的热更新java代码的方法,包括:基于java虚拟机在代码编译之前按照预设规则动态修改java代码类名,通过JavaCompiler编译java代码为字节码;为java代码引入相关类;自定义java类加载器ClassLoader加载编译好的java字节码,加载对应的类;将自定义java类加载器加载的java类注册到Spring框架中;代码调用时根据原代码类名和预设规则获取到真正的java代码类名,通过真正的java类名从spring框架中获取实例对象完成调用。通过编译前先根据一定的规则动态修改java类名实现同一个代码重复编译加载。

Description

一种基于java虚拟机的热更新java代码的方法
技术领域
本发明涉及计算机软件开发技术领域,特别涉及一种基于java虚拟机的热更新java代码的方法。
背景技术
目前,在线编辑java代码时,编辑完成后系统应执行最新的java代码逻辑,所以需要动态的进行编译加载,而由于java语言底层限制对于同一个java类无法重复编译加载,导致在线编辑java代码时不能获取到最新java代码编译结果,进而导致无法调用最新代码逻辑,动态编译的java代码之间也无法实现互相之间的注入调用。
发明内容
本发明旨在至少一定程度上解决上述技术中的技术问题之一。为此,本发明的目的在于提出一种基于java虚拟机的热更新java代码的方法,通过编译前先根据一定的规则动态修改java类名实现同一个代码重复编译加载,通过动态替换java代码的内容实现动态编译代码之间的互相注入调用。
为达到上述目的,本发明实施例提出了一种基于java虚拟机的热更新java代码的方法,包括:
基于java虚拟机在代码编译之前按照预设规则动态修改java代码类名,通过JavaCompiler编译java代码为字节码;
为java代码引入相关类;
自定义java类加载器ClassLoader加载编译好的java字节码,加载对应的类;
将自定义java类加载器加载的java类注册到Spring框架中;
代码调用时根据原代码类名和预设规则获取到真正的java代码类名,通过真正的java类名从spring框架中获取实例对象完成调用。
根据本发明的一些实施例,为java代码引入相关类,包括自定义JavaFileManager将所有相关类代码进行加载。
根据本发明的一些实施例,将自定义java类加载器加载的java类注册到Spring框架中,包括:当注册java类时,修改Spring框架获取java类的方法,从自定义java类加载器中遍历查找所需的java类进行注册。
根据本发明的一些实施例,还包括:基于java虚拟机在代码编译之前将代码内容中涉及动态编译代码类的内容替换为获取对应的代码类实例的方法。
根据本发明的一些实施例,通过真正的java类名从spring框架中获取实例对象完成调用,包括:
通过真正的java类名从spring框架中获取实例对象的属性信息;所述属性信息包括版本号、使用状态、位置、大小;
根据所述属性信息建立若干实例对象的调用序列图;
在调用过程中,将调用序列图中已调用的实例对象显示为第一颜色,同时在实例对象的对应位置标记调用序列;将调用序列图中未调用的实例对象显示为第二颜色,得到检测调用序列图;
根据检测调用序列图得到对实例对象的调用结果。
根据本发明的一些实施例,根据所述属性信息建立若干实例对象的调用序列图,包括:
根据所述属性信息包括的位置,基于预设的位置标定规则进行标定,确定各个实例对象的标定序号;
根据所述标定序号建立若干实例对象的调用序列图。
根据本发明的一些实施例,在完成调用后,还包括:
获取调用完成后生成的第二版本号与调用前的第一版本号的文件差异信息及功能差异信息;
将所述文件差异信息与预设文件差异信息比较,得到第一比较结果;
将功能差异信息与预设功能差异信息进行比较,得到第二比较结果;
根据第一比较结果及第二比较结果判断更新是否成功。
根据本发明的一些实施例,获取调用完成后生成的第二版本号与调用前的第一版本号的文件差异信息,包括:
根据第一版本号中的代码文本构建第一语法树;
根据第二版本号中的代码文本构建第二语法树;
将第一语法树中的若干第一树节点与第二语法树中的若干第二树节点进行匹配,将完全匹配的第一树节点与第二树节点建立匹配关系,并作为第一类型树节点组;将匹配度在预设匹配度范围内的第一树节点与第二树节点,建立对应关系,并作为第二类型树节点组;将匹配度小于预设匹配度范围的最小值的第二树节点,作为差异树节点;
在第二类型树节点组中,确定第一树节点的第一节点特征及第二树节点的第二节点特征,确定第一节点特征与第二节点特征的特征差异;
确定差异树节点的第三节点特征;
根据所述特征差异及所述第三节点特征,确定第二版本号与调用前的第一版本号的文件差异信息。
根据本发明的一些实施例,根据第一版本号中的代码文本构建第一语法树,包括:
对第一版本号中的代码文本进行关键词识别处理,确定若干个文本关键词;
在若干个文本关键词中选取目标文本关键词;所述目标文本关键词为初始配置关键词;
确定其他文本关键词与目标文本关键词的语义深度值;
以目标文本关键词为初始树节点,根据各个文本关键词与目标文本关键词的语义深度值进行树枝拓展,根据拓展结果,构建若干个树节点,每个树节点对应一个拓展结果;
根据初始树节点及若干个树节点构建第一语法树。
根据本发明的一些实施例,获取调用完成后生成的第二版本号与调用前的第一版本号的功能差异信息,包括:
获取文件差异信息,并对文件差异信息进行初始化赋值,并以第二版本号中更新内容代码对赋值信息基于函数进行运行,基于运行结果确定功能差异信息。
本发明提出一种基于java虚拟机的热更新java代码的方法,通过编译前先根据一定的规则动态修改java类名实现同一个代码重复编译加载,通过动态替换java代码的内容实现动态编译代码之间的互相注入调用。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明一个实施例的一种基于java虚拟机的热更新java代码的方法的流程图;
图2是根据本发明一个实施例的获取实例对象完成调用的方法的流程图;
图3是根据本发明一个实施例的建立若干实例对象的调用序列图的方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提出了一种基于java虚拟机的热更新java代码的方法,包括步骤S1-S5:
S1、基于java虚拟机在代码编译之前按照预设规则动态修改java代码类名,通过JavaCompiler编译java代码为字节码;
S2、为java代码引入相关类;
S3、自定义java类加载器ClassLoader加载编译好的java字节码,加载对应的类;
S4、将自定义java类加载器加载的java类注册到Spring框架中;
S5、代码调用时根据原代码类名和预设规则获取到真正的java代码类名,通过真正的java类名从spring框架中获取实例对象完成调用。
上述技术方案的工作原理:该实施例中,预设规则为:java代码类名+v+版本号+m+修改版本号。
该实施例中,java代码类名包括:原始java代码Class名称+v+版本号+m+修改版本号。
该实施例中,通过JavaCompiler编译java代码为字节码的作用是:编译java代码为字节码后,虚拟机才可以加载运行。
该实施例中,为java代码引入相关类,便于提高java代码的数据全面性及种类丰富性。
该实施例中,代码调用时根据原代码类名和预设规则获取到真正的java代码类名,具体举个例子。例如原代码类名为A,根据原代码类名和预设规则真正的java类名为Av1m1。
上述技术方案的有益效果:通过编译前先根据一定的规则动态修改java类名实现同一个代码重复编译加载,提高了编译的效率及准确性。
根据本发明的一些实施例,为java代码引入相关类,包括自定义JavaFileManager将所有相关类代码进行加载。
根据本发明的一些实施例,将自定义java类加载器加载的java类注册到Spring框架中,包括:当注册java类时,修改Spring框架获取java类的方法,从自定义java类加载器中遍历查找所需的java类进行注册。
根据本发明的一些实施例,还包括:基于java虚拟机在代码编译之前将代码内容中涉及动态编译代码类的内容替换为获取对应的代码类实例的方法。示例的,如源代码内容中含有其他的动态编译的代码类A,则将其替换为获取A类实例的方法getA()实现对于A类的调用。
上述技术方案的工作原理及有益效果:为实现动态编译代码之间的互相注入调用,在代码编译之前将代码内容中涉及动态编译代码类的内容替换为获取对应的代码类实例的方法,用于保证代码编译正确,实现动态编译代码之间的互相注入调用。
如图2所示,根据本发明的一些实施例,通过真正的java类名从spring框架中获取实例对象完成调用,包括S51-S54:
S51、通过真正的java类名从spring框架中获取实例对象的属性信息;所述属性信息包括版本号、使用状态、位置、大小;
S52、根据所述属性信息建立若干实例对象的调用序列图;
S53、在调用过程中,将调用序列图中已调用的实例对象显示为第一颜色,同时在实例对象的对应位置标记调用序列;将调用序列图中未调用的实例对象显示为第二颜色,得到检测调用序列图;
S54、根据检测调用序列图得到对实例对象的调用结果。
上述技术方案的工作原理:该实施例中,调用序列图表示对实例对象的调用序列信息,即各个实例对象的调用顺序。
该实施例中,实例对象的对应位置标记调用序列,表示该实例对象的实际调用序列。
该实施例中,检测调用序列图,表示哪些实例对象已经被调用,哪些实例对象没被调用,以及被调用的实例对象的实际调用序列。
该实施例中,基于调用结果,确定调用的实例对象的相关信息及未被调用的实例对象的相关信息,便于检测实际调用序列对调用序列图的顺序是否一致,便于及时发现调用异常。
上述技术方案的有益效果:根据所述属性信息建立若干实例对象的调用序列图,基于不同的颜色,将调用的实例对象与未调用的实例对象进行区分,同时在实例对象的对应位置标记调用序列,便于确定与调用序列图中对应的实例对象的理论调用序列的差异及异常情形。基于根据检测调用序列图得到对实例对象的调用结果,确定调用的实例对象的相关信息及未被调用的实例对象的相关信息,便于检测实际调用序列对调用序列图的顺序是否一致,便于及时发现调用异常,及时进行调用调整。
如图3所示,根据本发明的一些实施例,根据所述属性信息建立若干实例对象的调用序列图,包括步骤S521-S522:
S521、根据所述属性信息包括的位置,基于预设的位置标定规则进行标定,确定各个实例对象的标定序号;
S522、根据所述标定序号建立若干实例对象的调用序列图。
上述技术方案的工作原理:该实施例中,预设的位置标定规则为从左至右,从上至下基于位置进行标定。
上述技术方案的有益效果:基于预设的位置标定规则进行标定,确定各个实例对象的标定序号,根据所述标定序号建立若干实例对象的调用序列图,便于得到准确的调用序列图。
根据本发明的一些实施例,在完成调用后,还包括:
获取调用完成后生成的第二版本号与调用前的第一版本号的文件差异信息及功能差异信息;
将所述文件差异信息与预设文件差异信息比较,得到第一比较结果;
将功能差异信息与预设功能差异信息进行比较,得到第二比较结果;
根据第一比较结果及第二比较结果判断更新是否成功。
上述技术方案的工作原理:该实施例中,文件差异信息表示调用完成后生成的第二版本号与调用前的第一版本号的内容差异,即新增的变量内容信息。
该实施例中,功能差异信息为在第二版本号与调用前的第一版本号基于文件差异信息对应的新增的功能差异。
该实施例中,预设文件差异信息为理论的第二版本号与调用前的第一版本号的内容差异。
该实施例中,预设功能差异信息为理论的第二版本号与调用前的第一版本号的功能差异。
上述技术方案的有益效果:基于将调用完成后生成的第二版本号与调用前的第一版本号的文件差异信息及功能差异信息分别与预设文件差异信息及预设功能差异信息进行比较,在确定文件差异信息与预设文件差异信息一致且功能差异信息与预设功能差异信息一致时,表示更新成功,基于内容判断及功能判断准确确定是否更新成功。
根据本发明的一些实施例,获取调用完成后生成的第二版本号与调用前的第一版本号的文件差异信息,包括:
根据第一版本号中的代码文本构建第一语法树;
根据第二版本号中的代码文本构建第二语法树;
将第一语法树中的若干第一树节点与第二语法树中的若干第二树节点进行匹配,将完全匹配的第一树节点与第二树节点建立匹配关系,并作为第一类型树节点组;将匹配度在预设匹配度范围内的第一树节点与第二树节点,建立对应关系,并作为第二类型树节点组;将匹配度小于预设匹配度范围的最小值的第二树节点,作为差异树节点;
在第二类型树节点组中,确定第一树节点的第一节点特征及第二树节点的第二节点特征,确定第一节点特征与第二节点特征的特征差异;
确定差异树节点的第三节点特征;
根据所述特征差异及所述第三节点特征,确定第二版本号与调用前的第一版本号的文件差异信息。
上述技术方案的工作原理:该实施例中,第一语法树为将第一版本号中的代码文本基于树结构进行表示得到的。
该实施例中,第二语法树为将第二版本号中的代码文本基于树结构进行表示得到的。
该实施例中,第一类型树节点组由完全匹配的第一树节点与第二树节点组成,表示这部分并未进行更新,因此也不会产生文件差异信息。
该实施例中,第二类型树节点组由匹配度在预设匹配度范围内的第一树节点与第二树节点组成,表示这部分的主体结构存在,并且更新的部分内容。
该实施例中,差异树节点表示匹配度小于预设匹配度范围的最小值的第二树节点完全的新增的内容。
该实施例中,第一节点特征包括第一树节点的大小、位置、节点内容等。第二节点特征及第三节点特征与第一节点特征原理一致。
上述技术方案的有益效果:基于构建第一语法树,实现对第一版本号中的代码文本进行数据整理,基于构建第二语法树,实现对第二版本号中的代码文本进行数据整理。基于将第一语法树中的若干第一树节点与第二语法树中的若干第二树节点进行匹配,分为第一类型树节点组、第二类型树节点组及差异树节点,剔除第一类型树节点组,减少数据比对处理量,提高数据处理效率。基于根据匹配结果进行分类,便于提高数据处理速率及处理准确性。基于第一节点特征与第二节点特征的特征差异及所述第三节点特征,确定第二版本号与调用前的第一版本号的文件差异信息,提高了确定文件差异信息的准确性。
根据本发明的一些实施例,根据第一版本号中的代码文本构建第一语法树,包括:
对第一版本号中的代码文本进行关键词识别处理,确定若干个文本关键词;
在若干个文本关键词中选取目标文本关键词;所述目标文本关键词为初始配置关键词;
确定其他文本关键词与目标文本关键词的语义深度值;
以目标文本关键词为初始树节点,根据各个文本关键词与目标文本关键词的语义深度值进行树枝拓展,根据拓展结果,构建若干个树节点,每个树节点对应一个拓展结果;
根据初始树节点及若干个树节点构建第一语法树。
上述技术方案的工作原理:该实施例中,初始配置关键词为最基础的关键词,每个代码文本中均包括,比如在第二版本号中的代码文本中也包括初始配置关键词。构建第二语法树与构建第一语法树的原理一致,在构建第二语法树时,选取与构建第一语法树同样的目标文本关键词。
该实施例中,语义深度值为其他文本关键词与目标文本关键词的语义距离值。
上述技术方案的有益效果:基于代码文本进行关键词识别处理,选取目标文本关键词,确定其他文本关键词与目标文本关键词的语义深度值;
以目标文本关键词为初始树节点,根据各个文本关键词与目标文本关键词的语义深度值进行树枝拓展,根据拓展结果,构建若干个树节点,每个树节点对应一个拓展结果;
根据初始树节点及若干个树节点构建第一语法树。便于准确确定其他文本关键词与目标文本关键词的关联关系,并建立准确的树结构,提高了数据管理,便于后续进行数据比对,确定相应的树节点。
根据本发明的一些实施例,获取调用完成后生成的第二版本号与调用前的第一版本号的功能差异信息,包括:
获取文件差异信息,并对文件差异信息进行初始化赋值,并以第二版本号中更新内容代码对赋值信息基于函数进行运行,基于运行结果确定功能差异信息。
上述技术方案的工作原理及有益效果:获取文件差异信息,并对文件差异信息进行初始化赋值,并以第二版本号中更新内容代码对赋值信息基于函数进行运行,基于运行结果确定功能差异信息。便于准确确定功能差异信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于java虚拟机的热更新java代码的方法,其特征在于,包括:
基于java虚拟机在代码编译之前按照预设规则动态修改java代码类名,通过JavaCompiler编译java代码为字节码;
为java代码引入相关类;
自定义java类加载器ClassLoader加载编译好的java字节码,加载对应的类;
将自定义java类加载器加载的java类注册到Spring框架中;
代码调用时根据原代码类名和预设规则获取到真正的java代码类名,通过真正的java类名从spring框架中获取实例对象完成调用。
2.如权利要求1所述的基于java虚拟机的热更新java代码的方法,其特征在于,为java代码引入相关类,包括自定义JavaFileManager将所有相关类代码进行加载。
3.如权利要求1所述的基于java虚拟机的热更新java代码的方法,其特征在于,将自定义java类加载器加载的java类注册到Spring框架中,包括:当注册java类时,修改Spring框架获取java类的方法,从自定义java类加载器中遍历查找所需的java类进行注册。
4.如权利要求1所述的基于java虚拟机的热更新java代码的方法,其特征在于,还包括:基于java虚拟机在代码编译之前将代码内容中涉及动态编译代码类的内容替换为获取对应的代码类实例的方法。
5.如权利要求1所述的基于java虚拟机的热更新java代码的方法,其特征在于,通过真正的java类名从spring框架中获取实例对象完成调用,包括:
通过真正的java类名从spring框架中获取实例对象的属性信息;所述属性信息包括版本号、使用状态、位置、大小;
根据所述属性信息建立若干实例对象的调用序列图;
在调用过程中,将调用序列图中已调用的实例对象显示为第一颜色,同时在实例对象的对应位置标记调用序列;将调用序列图中未调用的实例对象显示为第二颜色,得到检测调用序列图;
根据检测调用序列图得到对实例对象的调用结果。
6.如权利要求5所述的基于java虚拟机的热更新java代码的方法,其特征在于,根据所述属性信息建立若干实例对象的调用序列图,包括:
根据所述属性信息包括的位置,基于预设的位置标定规则进行标定,确定各个实例对象的标定序号;
根据所述标定序号建立若干实例对象的调用序列图。
7.如权利要求1所述的基于java虚拟机的热更新java代码的方法,其特征在于,在完成调用后,还包括:
获取调用完成后生成的第二版本号与调用前的第一版本号的文件差异信息及功能差异信息;
将所述文件差异信息与预设文件差异信息比较,得到第一比较结果;
将功能差异信息与预设功能差异信息进行比较,得到第二比较结果;
根据第一比较结果及第二比较结果判断更新是否成功。
8.如权利要求7所述的基于java虚拟机的热更新java代码的方法,其特征在于,获取调用完成后生成的第二版本号与调用前的第一版本号的文件差异信息,包括:
根据第一版本号中的代码文本构建第一语法树;
根据第二版本号中的代码文本构建第二语法树;
将第一语法树中的若干第一树节点与第二语法树中的若干第二树节点进行匹配,将完全匹配的第一树节点与第二树节点建立匹配关系,并作为第一类型树节点组;将匹配度在预设匹配度范围内的第一树节点与第二树节点,建立对应关系,并作为第二类型树节点组;将匹配度小于预设匹配度范围的最小值的第二树节点,作为差异树节点;
在第二类型树节点组中,确定第一树节点的第一节点特征及第二树节点的第二节点特征,确定第一节点特征与第二节点特征的特征差异;
确定差异树节点的第三节点特征;
根据所述特征差异及所述第三节点特征,确定第二版本号与调用前的第一版本号的文件差异信息。
9.如权利要求8所述的基于java虚拟机的热更新java代码的方法,其特征在于,根据第一版本号中的代码文本构建第一语法树,包括:
对第一版本号中的代码文本进行关键词识别处理,确定若干个文本关键词;
在若干个文本关键词中选取目标文本关键词;所述目标文本关键词为初始配置关键词;
确定其他文本关键词与目标文本关键词的语义深度值;
以目标文本关键词为初始树节点,根据各个文本关键词与目标文本关键词的语义深度值进行树枝拓展,根据拓展结果,构建若干个树节点,每个树节点对应一个拓展结果;
根据初始树节点及若干个树节点构建第一语法树。
10.如权利要求7所述的基于java虚拟机的热更新java代码的方法,其特征在于,获取调用完成后生成的第二版本号与调用前的第一版本号的功能差异信息,包括:
获取文件差异信息,并对文件差异信息进行初始化赋值,并以第二版本号中更新内容代码对赋值信息基于函数进行运行,基于运行结果确定功能差异信息。
CN202310382471.2A 2023-04-11 2023-04-11 一种基于java虚拟机的热更新java代码的方法 Active CN116501348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310382471.2A CN116501348B (zh) 2023-04-11 2023-04-11 一种基于java虚拟机的热更新java代码的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310382471.2A CN116501348B (zh) 2023-04-11 2023-04-11 一种基于java虚拟机的热更新java代码的方法

Publications (2)

Publication Number Publication Date
CN116501348A true CN116501348A (zh) 2023-07-28
CN116501348B CN116501348B (zh) 2023-12-05

Family

ID=87317596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310382471.2A Active CN116501348B (zh) 2023-04-11 2023-04-11 一种基于java虚拟机的热更新java代码的方法

Country Status (1)

Country Link
CN (1) CN116501348B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150355898A1 (en) * 2014-06-04 2015-12-10 Netease (Hangzhou) Network Co., Ltd. Hot-update method and apparatus
CN110659057A (zh) * 2019-09-24 2020-01-07 腾讯科技(深圳)有限公司 应用程序热更新方法、装置、存储介质及计算机设备
CN114461247A (zh) * 2022-02-07 2022-05-10 北京京东振世信息技术有限公司 热更新方法、装置、电子设备和计算机可读介质
CN114625397A (zh) * 2022-05-17 2022-06-14 山东捷瑞数字科技股份有限公司 一种java代码热更新装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150355898A1 (en) * 2014-06-04 2015-12-10 Netease (Hangzhou) Network Co., Ltd. Hot-update method and apparatus
CN110659057A (zh) * 2019-09-24 2020-01-07 腾讯科技(深圳)有限公司 应用程序热更新方法、装置、存储介质及计算机设备
CN114461247A (zh) * 2022-02-07 2022-05-10 北京京东振世信息技术有限公司 热更新方法、装置、电子设备和计算机可读介质
CN114625397A (zh) * 2022-05-17 2022-06-14 山东捷瑞数字科技股份有限公司 一种java代码热更新装置及方法

Also Published As

Publication number Publication date
CN116501348B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
CN108932192B (zh) 一种基于抽象语法树的Python程序类型缺陷检测方法
US5325533A (en) Engineering system for modeling computer programs
US20190317879A1 (en) Deep learning for software defect identification
CN110147235B (zh) 一种源代码与二进制代码间的语义比对方法和装置
CN108710662B (zh) 语言转换方法和装置、存储介质、数据查询系统和方法
CN109408385B (zh) 一种基于缺陷规则和分类反馈的缺陷发现方法
CN112148343A (zh) 规则发布方法、装置及终端设备
CN101576850A (zh) 一种改进的面向宿主的嵌入式软件白盒测试方法
CN108897678B (zh) 静态代码检测方法和静态代码检测系统、存储设备
CN116501348B (zh) 一种基于java虚拟机的热更新java代码的方法
CN107729015A (zh) 一种确定工程代码中的无用函数的方法和装置
CN116820996A (zh) 基于人工智能的集成测试用例自动生成方法和装置
CN1188933A (zh) 程序设计中内存操作错误的识别方法
CN115455239A (zh) 一种java类实例和目标格式数据的转换方法和装置
CN114706586A (zh) 代码编译、代码运行方法、装置、计算机设备及存储介质
CN113821213A (zh) 基于人工智能的前端代码检测及修复方法、装置及设备
CN109299004B (zh) 关键元素差异性分析方法及系统
CN112068842A (zh) 依赖关系的建立方法、联动编译方法及其系统
CN110096274B (zh) 分布式内存列式数据库的生成代码复用匹配管理方法
CN113568662B (zh) 一种基于调用关系的代码变更影响范围分析方法及系统
CN118151945A (zh) 数据处理方法、装置、设备及存储介质
CN117235746B (zh) 一种基于多维ast融合检测的源代码安全管控平台
CN118034708A (zh) 一种基于静态分析的二进制程序控制流重建方法
CN117171367B (zh) 一种对不同数据库表的指定属性值的规范检测方法
CN116627390B (zh) 航空软件开发中icd文件的替代方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant