CN114625397A - 一种java代码热更新装置及方法 - Google Patents

一种java代码热更新装置及方法 Download PDF

Info

Publication number
CN114625397A
CN114625397A CN202210531571.2A CN202210531571A CN114625397A CN 114625397 A CN114625397 A CN 114625397A CN 202210531571 A CN202210531571 A CN 202210531571A CN 114625397 A CN114625397 A CN 114625397A
Authority
CN
China
Prior art keywords
code
class
task
management module
module
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
Application number
CN202210531571.2A
Other languages
English (en)
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.)
Shandong Jerei Digital Technology Co Ltd
Original Assignee
Shandong Jerei Digital 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 Shandong Jerei Digital Technology Co Ltd filed Critical Shandong Jerei Digital Technology Co Ltd
Priority to CN202210531571.2A priority Critical patent/CN114625397A/zh
Publication of CN114625397A publication Critical patent/CN114625397A/zh
Pending legal-status Critical Current

Links

Images

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/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本发明为代码热更新领域,涉及一种JAVA代码热更新装置及方法。该装置中代码管理模块对类代码的列表及单项类代码的新增和修改进行管理;版本控制模块生成版本号;当出现代码异常时,进行指定类代码的回滚;任务管理模块对任务的列表及单项任务的新增和修改进行管理;将任务参数同步到代码预编译模块;日志管理模块存储日志记录;代码预编译模块根据对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功后,生成唯一ID标识到任务管理模块;代码执行模块根据唯一ID标识、权限类名以及方法名对类代码进行动态调用。本发明能够实现JAVA代码问题的快速修改与热更新。

Description

一种JAVA代码热更新装置及方法
技术领域
本发明涉及代码热更新领域,特别是涉及一种JAVA代码热更新装置及方法。
背景技术
随着信息化技术的普及,框架技术在web后端的开发中占据了重要地位。在微服务或项目开发完成后,项目文件通常以jar格式的文件打包发布到生产环境,如果发布成功后,在项目运行过程中发现某一处代码出现纰漏,系统运维难以在短时间内修改并发布新版本,最快速的恢复方法是回滚到上一版本,并在开发环境下对最新版本中的问题进行修改和测试后,再选择重新发布到生产环境,由此引发紧急事态处理效率低下的问题。
同样的,在部分业务开发中,如平台的页面迭代、页面问题修复、流程的优化及变更等情境下,需要频繁改动接口代码来实现相对应的调整,每次修改都需要针对项目的业务模块进行打包、测试、部署等流程,比较耗费开发人员的时间与精力。
过去的JSP动态页面技术虽然能够依靠热更新实现代码快速修改效果,但是JSP动态页面技术作为过时技术,已无法满足更高层次的架构的要求。
因此,在现阶段业务开发中,目前没有成熟的方法来替代JSP动态页面技术,以确保高层次的架构和热更新并存。
发明内容
本发明的目的是提供一种JAVA代码热更新装置及方法,能够实现JAVA代码问题的快速修改与热更新。
为实现上述目的,本发明提供了如下方案:
一种JAVA代码热更新装置,包括:代码管理模块、版本控制模块、任务管理模块、日志管理模块、代码预编译模块以及代码执行模块;
所述代码管理模块分别与所述版本控制模块、所述任务管理模块通信;所述任务管理模块分别与所述代码预编译模块、所述代码执行模块通信;所述日志管理模块分别与所述代码预编译模块、所述代码执行模块通信;
所述代码管理模块用于对类代码的列表及单项类代码的新增和修改进行管理;
所述版本控制模块用于当类代码的修改时,进行版本管理,并生成版本号;还用于当出现代码异常或找回之前删除代码时,进行指定类代码的回滚;
所述任务管理模块用于对任务的列表及单项任务的新增和修改进行管理;并将任务参数同步到所述代码预编译模块;所述任务参数包括:任务名称、任务指定类、指定的类代码名称以及任务是否启用;
所述日志管理模块用于存储执行任务中指定的类代码产生的日志记录;所述日志记录包括:类代码执行结果记录以及类代码执行期间系统打印日志记录;
所述代码预编译模块用于根据任务参数中指定的类代码名称从所述任务管理模块中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功之后,生成唯一ID标识到所述任务管理模块;
所述代码执行模块用于根据所述任务管理模块传递的唯一ID标识、权限类名以及指定的类代码中要执行的方法名对任务指定的类代码进行动态调用,当类代码经过编译并加载到JVM虚拟机中后,指定一个权限类名用于类在JVM虚拟机中的调用。
可选地,所述代码管理模块包括:代码管理页面和版本控制页面;
所述代码管理页面包括:代码列表、新增按钮、编辑按钮、删除按钮以及代码编辑器;
所述代码编辑器用于编写JAVA类型的代码。
可选地,所述代码编辑器包括:代码编写区、代码参数模拟区域、运行按钮、运行日志区域、提交按钮、版本信息输入框以及回滚按钮;
所述代码参数模拟区域用于指定类代码中的方法名、形参并通过点击所述运行按钮进行代码测试;所述代码参数模拟区域用于在测试期间进行临时任务的创建,并模拟任务的预编译与执行;所述运行日志区域用于将执行结果进行显示。
可选地,调用方式为API调用和内部工具类调用。
一种JAVA代码热更新方法,用于实现所述的一种JAVA代码热更新装置,所述方法包括:
登录web客户端,通过代码管理模块对类代码的列表及单项类代码的新增和修改进行管理;
当类代码的修改时,利用版本控制模块进行版本管理,并生成版本号;当出现代码异常或找回之前删除代码时,利用版本控制模块进行指定类代码的回滚;
利用任务管理模块对任务的列表及单项任务的新增和修改进行管理;并将任务参数同步到代码预编译模块;所述任务参数包括:任务名称、任务指定类、指定的类代码名称以及任务是否启用;
代码预编译模块根据任务参数中指定的类代码名称从任务管理模块中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功后,生成唯一ID标识到所述任务管理模块;
代码执行模块根据所述任务管理模块传递的唯一ID标识、权限类名以及指定的类代码中要执行的方法名对任务指定的类代码进行动态调用,当类代码经过编译并加载到JVM虚拟机中后,指定一个权限类名用于类在JVM虚拟机中的调用;
利用日志管理模块进行执行任务中指定的类代码产生的日志记录的存储;所述日志记录包括:类代码执行结果记录以及类代码执行期间系统打印日志记录。
可选地,所述代码预编译模块根据任务参数中指定的类代码名称从任务管理模块中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功后,生成唯一ID标识到所述任务管理模块,具体包括:
当编译失败后,返回编译过程中捕获的异常摘要信息,在任务管理模块中提示修改类代码,直至成功创建任务。
可选地,调用方式为API调用和内部工具类调用。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种JAVA代码热更新装置及方法,为一种面向web端的开发流程。针对经常修改的代码提供热更新及调用的完整流程、降低因代码低级错误导致重新打包发布时效率低的问题。本发明能够在开发、注册、调用上形成闭环,易于在不同环境下的开发。尤其面临客户现场时,如果临时设备没有指定的开发环境,本装置提供的web端可以代替ide完成代码的调试与修改。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种JAVA代码热更新装置结构示意图;
图2为本发明所提供的一种JAVA代码热更新发明流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种JAVA代码热更新装置及方法,能够实现JAVA代码问题的快速修改与热更新。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明所提供的一种JAVA代码热更新装置结构示意图,如图1所示,本发明所提供的一种JAVA代码热更新装置,基于web客户端101;所述装置包括:代码管理模块102、版本控制模块103、任务管理模块104、日志管理模块105、代码预编译模块106以及代码执行模块107;
所述代码管理模块102分别与所述版本控制模块103、所述任务管理模块104通信;所述任务管理模块104分别与所述代码预编译模块106、所述代码执行模块107通信;所述日志管理模块105分别与所述代码预编译模块106、所述代码执行模块107通信;
所述代码管理模块102用于对类代码的列表及单项类代码的新增和修改进行管理;
所述版本控制模块103用于当类代码的修改时,进行版本管理,并生成版本号;还用于当出现代码异常或找回之前删除代码时,进行指定类代码的回滚;
所述任务管理模块104用于对任务的列表及单项任务的新增和修改进行管理;并将任务参数同步到所述代码预编译模块106;所述任务参数包括:任务名称、任务指定类、指定的类代码名称以及任务是否启用;所述任务指定类是在所述代码管理模块102中新建的类代码,通过下拉框选择已有的类代码名称。
所述日志管理模块105用于存储执行任务中指定的类代码产生的日志记录;所述日志记录包括:类代码执行结果记录以及类代码执行期间系统打印日志记录;
所述代码预编译模块106用于根据任务参数中指定的类代码名称从所述任务管理模块104中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功之后,生成唯一ID标识到所述任务管理模块104;从所述源代码中通过正则的方式匹配包名和类名,并拼接成全限定类名。所述源代码通过JDK环境自带的JavaCompiler工具针对提取到的类代码源代码进行编译得到二进制数据进行临时存储。
所述代码执行模块107用于根据所述任务管理模块104传递的唯一ID标识、权限类名以及指定的类代码中要执行的方法名对任务指定的类代码进行动态调用,当类代码经过编译并加载到JVM虚拟机中后,指定一个权限类名用于类在JVM虚拟机中的调用。
代码预编译模块106使用JDK环境自带的JavaCompiler工具类执行编译。由于SpringBoot拥有独立的ClassLoder,所以当项目以jar文件格式运行时,如果编译的JAVA代码中导入了其他类并且调用所述其他类方法,则必定会抛出:NoClassDefFoundError异常。所以本装置重写了动态编译中的文件管理器,分别为:JavaFileManager、StandardJavaFileManager、ForwardingJavaFileManager,最终目的是为了在编译时,添加JAVA类代码中的引用类到编译时环境中,以防编译因为缺少类和类方法导致编译失败。
编译前,首先使用正则方式匹配所述类代码中的定义的类的package包名,并将package包名和类名称以字符串拼接的方式得到全限定类名。
使用全限定类名和JAVA类代码使用SimpleJavaFileObject对象构造方法获取所述JAVA类代码的源代码JavaFileObject对象。
创建JavaCompiler工具类中CompilationTask任务对象,将重写的ForwardingJavaFileManager对象、DiagnosticListener诊断对象收集器以及所述的JavaFileObject对象传入所述CompilationTask的构造方法中。
调用所述CompilationTask的call()方法,生成类的二进制数据到所述重写的ForwardingJavaFileManager工具类中,并以全限定类名为key,所述重写的ForwardingJavaFileManager工具类中读取到的二进制数据为value,存储到键值对临时缓存中。
执行期间,假设运行所述CompilationTask的call()方法时出现异常,则表示在编译过程中存在编译时异常,通过异常捕获将所述异常捕获到的异常信息存储到所述日志管理模块105并将日志返回所述任务管理模块104,继而提示开发人员修改代码后重试。
如果执行所述CompilationTask的call()方法时返回值为true,则表示编译成功,记录全限定类名、编译时间、编译耗时(毫秒)、编译时源代码、编译结果到所述日志管理模块105。
当编译成功之后,生成唯一ID标识到所述任务管理模块104,具体过程为:
读取所述二进制数据和所述全限定类名通过ClassLoader类中的defineClass方法注册到JVM虚拟机中,注册期间的异常持续捕获,如果注册失败则同样重复上述失败步骤。如果成功则记录成功编译日志,其中包括:全限定类名、编译时间、编译耗时(毫秒)、编译时源代码、编译结果到所述日志管理模块105。
编译成功后得到的
Figure 569663DEST_PATH_IMAGE001
对象,并将
Figure 718359DEST_PATH_IMAGE001
对象以键值对的方式存储到缓存中,其中使用UUID生成的唯一ID标识的key作为所述缓存中键值对的key,
Figure 470545DEST_PATH_IMAGE001
对象作为缓存中键值对的value。
缓存成功后返回所述唯一ID标识到任务管理模块104。详细编译信息可在所述web客户端101中的日志管理模块105提供的日志列表页面查询。
所述代码管理模块102包括:代码管理页面和版本控制页面;
所述代码管理页面包括:代码列表、新增按钮、编辑按钮、删除按钮以及代码编辑器;
所述代码编辑器用于编写JAVA类型的代码。
所述代码编辑器包括:代码编写区、代码参数模拟区域、运行按钮、运行日志区域、提交按钮、版本信息输入框以及回滚按钮;
所述代码参数模拟区域用于指定类代码中的方法名、形参并通过点击所述运行按钮进行代码测试;所述代码参数模拟区域用于在测试期间进行临时任务的创建,并模拟任务的预编译与执行;所述运行日志区域用于将执行结果进行显示。
代码在所述代码编辑器中编写完成后,通过在所述代码编辑器中的所述版本信息输入框填写本次代码版本信息并点击提交按钮,提交首次版本的代码信息到所述版本控制模块103并生成版本号。
调用方式为API调用和内部工具类调用。
使用API调用执行任务时,向本装置提供的指定接口地址,发送所述任务唯一ID、类代码中的方法名称、类代码中的方法形参参数值完成类代码的方法调用。
使用JAVA内部工具类执行任务时,通过本装置所述JAVA内部工具类提供的方法时,传入任务唯一ID、类代码中的方法名词、类代码中的方法形参参数值完成类代码的方法调用。
即API调用为本装置提供对外的接口。所述接口必填参数有:任务唯一ID、执行方法名、参数类型枚举值、方法参数值。所述内部工具类调用与API调用类似,通过在代码中使用工具类中的执行方法,并在调用方法时传入指定参数:任务唯一ID、执行方法名、方法参数值,来进行类方法的调用。两种类方法调用执行方式除外部调用方式不同,内部原理基本一致,具体如下:
任务唯一ID用于查询执行任务信息及从缓存中取出
Figure 420178DEST_PATH_IMAGE001
对象;读取到
Figure 636527DEST_PATH_IMAGE001
对象后,调用对象的getMethod方法传入所述执行方法名、参数类型枚举值得到Method对象。所述参数类型枚举值是一个枚举类,其中定义了类型名称和类型Class的枚举。通过枚举名称可以得到枚举指定的类的类型。
调用Method对象的invoke方法,传入所述方法参数值,来执行所述方法,执行过程中,使用切面记录执行日志到日志管理模块105中。
任务执行成功后。将Method对象进行缓存,使用全限定类名和方法名以字符串拼接的方式为key,Method为value按键值对存储,用于下次调用,提高每次读取的效率。
将任务执行的方法返回值返回调用方,完成本装置针对任务整体的开发、调用与日志记录。
图2为本发明所提供的一种JAVA代码热更新发明流程示意图,如图2所示,本发明所提供的一种JAVA代码热更新方法,用于实现所述的一种JAVA代码热更新装置,所述方法包括:
S201,登录web客户端101,通过代码管理模块102对类代码的列表及单项类代码的新增和修改进行管理;
S202,当类代码的修改时,利用版本控制模块103进行版本管理,并生成版本号;当出现代码异常或找回之前删除代码时,利用版本控制模块103进行指定类代码的回滚;
S203,利用任务管理模块104对任务的列表及单项任务的新增和修改进行管理;并将任务参数同步到代码预编译模块106;所述任务参数包括:任务名称、任务指定类、指定的类代码名称以及任务是否启用;
S204,代码预编译模块106根据任务参数中指定的类代码名称从任务管理模块104中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功后,生成唯一ID标识到所述任务管理模块104;
S205,代码执行模块107根据所述任务管理模块104传递的唯一ID标识、权限类名以及指定的类代码中要执行的方法名对任务指定的类代码进行动态调用,当类代码经过编译并加载到JVM虚拟机中后,指定一个权限类名用于类在JVM虚拟机中的调用;调用方式为API调用和内部工具类调用。
S206,利用日志管理模块105进行执行任务中指定的类代码产生的日志记录的存储;所述日志记录包括:类代码执行结果记录以及类代码执行期间系统打印日志记录。
S203具体包括:
当编译失败后,返回编译过程中捕获的异常摘要信息,在任务管理模块104中提示修改类代码,直至成功创建任务。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种JAVA代码热更新装置,其特征在于,包括:代码管理模块、版本控制模块、任务管理模块、日志管理模块、代码预编译模块以及代码执行模块;
所述代码管理模块分别与所述版本控制模块、所述任务管理模块通信;所述任务管理模块分别与所述代码预编译模块、所述代码执行模块通信;所述日志管理模块分别与所述代码预编译模块、所述代码执行模块通信;
所述代码管理模块用于对类代码的列表及单项类代码的新增和修改进行管理;
所述版本控制模块用于当类代码的修改时,进行版本管理,并生成版本号;还用于当出现代码异常或找回之前删除代码时,进行指定类代码的回滚;
所述任务管理模块用于对任务的列表及单项任务的新增和修改进行管理;并将任务参数同步到所述代码预编译模块;所述任务参数包括:任务名称、任务指定类、指定的类代码名称以及任务是否启用;
所述日志管理模块用于存储执行任务中指定的类代码产生的日志记录;所述日志记录包括:类代码执行结果记录以及类代码执行期间系统打印日志记录;
所述代码预编译模块用于根据任务参数中指定的类代码名称从所述任务管理模块中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功之后,生成唯一ID标识到所述任务管理模块;
所述代码执行模块用于根据所述任务管理模块传递的唯一ID标识、权限类名以及指定的类代码中要执行的方法名对任务指定的类代码进行动态调用,当类代码经过编译并加载到JVM虚拟机中后,指定一个权限类名用于类在JVM虚拟机中的调用。
2.根据权利要求1所述的一种JAVA代码热更新装置,其特征在于,所述代码管理模块包括:代码管理页面和版本控制页面;
所述代码管理页面包括:代码列表、新增按钮、编辑按钮、删除按钮以及代码编辑器;
所述代码编辑器用于编写JAVA类型的代码。
3.根据权利要求2所述的一种JAVA代码热更新装置,其特征在于,所述代码编辑器包括:代码编写区、代码参数模拟区域、运行按钮、运行日志区域、提交按钮、版本信息输入框以及回滚按钮;
所述代码参数模拟区域用于指定类代码中的方法名、形参并通过点击所述运行按钮进行代码测试;所述代码参数模拟区域用于在测试期间进行临时任务的创建,并模拟任务的预编译与执行;所述运行日志区域用于将执行结果进行显示。
4.根据权利要求1所述的一种JAVA代码热更新装置,其特征在于,调用方式为API调用和内部工具类调用。
5.一种JAVA代码热更新方法,用于实现权利要求1-4任一项所述的一种JAVA代码热更新装置,其特征在于,所述方法包括:
登录web客户端,通过代码管理模块对类代码的列表及单项类代码的新增和修改进行管理;
当类代码的修改时,利用版本控制模块进行版本管理,并生成版本号;当出现代码异常或找回之前删除代码时,利用版本控制模块进行指定类代码的回滚;
利用任务管理模块对任务的列表及单项任务的新增和修改进行管理;并将任务参数同步到代码预编译模块;所述任务参数包括:任务名称、任务指定类、指定的类代码名称以及任务是否启用;
代码预编译模块根据任务参数中指定的类代码名称从任务管理模块中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功后,生成唯一ID标识到所述任务管理模块;
代码执行模块根据所述任务管理模块传递的唯一ID标识、权限类名以及指定的类代码中要执行的方法名对任务指定的类代码进行动态调用,当类代码经过编译并加载到JVM虚拟机中后,指定一个权限类名用于类在JVM虚拟机中的调用;
利用日志管理模块进行执行任务中指定的类代码产生的日志记录的存储;所述日志记录包括:类代码执行结果记录以及类代码执行期间系统打印日志记录。
6.根据权利要求5所述的一种JAVA代码热更新方法,其特征在于,所述代码预编译模块根据任务参数中指定的类代码名称从任务管理模块中获取类代码源代码,并对类代码源代码进行JAVA类的编译,并在编译为class二进制文件后,动态加载到JVM虚拟机中;当编译成功后,生成唯一ID标识到所述任务管理模块,具体包括:
当编译失败后,返回编译过程中捕获的异常摘要信息,在任务管理模块中提示修改类代码,直至成功创建任务。
7.根据权利要求5所述的一种JAVA代码热更新方法,其特征在于,调用方式为API调用和内部工具类调用。
CN202210531571.2A 2022-05-17 2022-05-17 一种java代码热更新装置及方法 Pending CN114625397A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210531571.2A CN114625397A (zh) 2022-05-17 2022-05-17 一种java代码热更新装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210531571.2A CN114625397A (zh) 2022-05-17 2022-05-17 一种java代码热更新装置及方法

Publications (1)

Publication Number Publication Date
CN114625397A true CN114625397A (zh) 2022-06-14

Family

ID=81907296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210531571.2A Pending CN114625397A (zh) 2022-05-17 2022-05-17 一种java代码热更新装置及方法

Country Status (1)

Country Link
CN (1) CN114625397A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501348A (zh) * 2023-04-11 2023-07-28 北京三维天地科技股份有限公司 一种基于java虚拟机的热更新java代码的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120246610A1 (en) * 2011-03-23 2012-09-27 Infosys Technologies Ltd. Online integrated development environment with code assist
CN109542463A (zh) * 2018-10-26 2019-03-29 深圳壹账通智能科技有限公司 编译文件包发送方法、装置、计算机设备及存储介质
CN110262818A (zh) * 2019-05-29 2019-09-20 北京达佳互联信息技术有限公司 Java代码热更新方法、装置、电子设备及存储介质
CN111984245A (zh) * 2020-08-31 2020-11-24 上海玳鸽信息技术有限公司 一种区块链智能合约在线集成开发环境系统及实现方法
CN113312168A (zh) * 2020-02-26 2021-08-27 华为技术有限公司 页面访问方法与电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120246610A1 (en) * 2011-03-23 2012-09-27 Infosys Technologies Ltd. Online integrated development environment with code assist
CN109542463A (zh) * 2018-10-26 2019-03-29 深圳壹账通智能科技有限公司 编译文件包发送方法、装置、计算机设备及存储介质
CN110262818A (zh) * 2019-05-29 2019-09-20 北京达佳互联信息技术有限公司 Java代码热更新方法、装置、电子设备及存储介质
CN113312168A (zh) * 2020-02-26 2021-08-27 华为技术有限公司 页面访问方法与电子设备
CN111984245A (zh) * 2020-08-31 2020-11-24 上海玳鸽信息技术有限公司 一种区块链智能合约在线集成开发环境系统及实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王万森等: "Java动态类加载机制研究及应用", 《计算机工程与设计》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501348A (zh) * 2023-04-11 2023-07-28 北京三维天地科技股份有限公司 一种基于java虚拟机的热更新java代码的方法
CN116501348B (zh) * 2023-04-11 2023-12-05 北京三维天地科技股份有限公司 一种基于java虚拟机的热更新java代码的方法

Similar Documents

Publication Publication Date Title
CN102402427B (zh) 一种Java应用程序的更新方法及装置
US7913265B2 (en) Method of loading software with an intermediate object oriented language in a portable device
CN102279765A (zh) 预编译托存托管代码
CN110187914A (zh) 应用开发方法、系统及装置
US20050223360A1 (en) System and method for providing a generic user interface testing framework
CN112558980A (zh) 多软件包管理方法及装置
CN108845940A (zh) 一种企业级信息系统自动化功能测试方法和系统
CN113688186B (zh) 智能合约执行方法、引擎及区块链节点
US20050229161A1 (en) Generic user interface testing framework with load-time libraries
CN110795091B (zh) 一种模块化路由解耦方法、存储介质、电子设备及系统
JP2010250378A (ja) ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム
US11893367B2 (en) Source code conversion from application program interface to policy document
US10459698B2 (en) Framework for generating adapters in an integrated development environment
CN113254317A (zh) 基于字节码的指标自动生成方法及系统
CN114625397A (zh) 一种java代码热更新装置及方法
WO2011042228A1 (en) Method and system to handle java class versioning
US7171650B2 (en) System and method for integrating resources in a network
US20090327995A1 (en) Annotation-aided code generation in library-based replay
CN110750310B (zh) 基于ios系统组件化开发的二进制和源码切换方法
CN111796863A (zh) 一种跨环境的项目版本的管理方法
CN111880804A (zh) 应用程序代码的处理方法及装置
CN111105289A (zh) 一种基于aop方式的客户端订单取消判断方法及装置
CN116166907A (zh) 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置
US8943476B2 (en) System and method to in-line script dependencies
CN115220873A (zh) 一种在Android系统中运行Open Harmony应用的方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220614

RJ01 Rejection of invention patent application after publication