class热更新
Posted justry_deng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了class热更新相关的知识,希望对你有一定的参考价值。
class热更新
功能与特性
- 支持基于 java源码 ,走 文件 进行class热更新
- 支持基于 java源码 ,走 内存 进行class热更新
- 支持基于 class字节码 ,走 文件 进行class热更新
- 支持基于 class字节码 ,走 内存 进行class热更新
maven坐标
<dependency>
<groupId>com.idea-aedi</groupId>
<artifactId>hot-update-class</artifactId>
<version>{版本号}</version>
</dependency>
使用说明
记得先引入上述依赖噢,朋友们。
-
Java源码(走文件)热更新
/** * 基于java源码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param javaPathsList * 要进行更新的java类文件的绝对路径集合 */ ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(List<String> javaPathsList); ///ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(String agentJarPath, List<String> javaPathsList); ///ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(String pid, String agentJarPath, List<String> javaPathsList);
-
Java源码(走内存)热更新
/** * 基于java源码,走内存进行class热更新 * * @param agentJarPath * 代理jar包的绝对路径 * @param javaBytesList * 要进行更新的java源码文件的绝对路径集合 */ ClassHotUpdateExecutor.MEMORY_JAVA_BYTES.execute(List<byte[]> javaBytesList); ///ClassHotUpdateExecutor.MEMORY_JAVA_BYTES.execute(String agentJarPath, List<byte[]> javaBytesList);
-
Class字节码(走文件)热更新
/** * 基于class字节码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param classPathsList * 要进行更新的class字节码文件的绝对路径集合 */ ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(List<String> classPathsList); ///ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(String agentJarPath, List<String> classPathsList); ///ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(String pid, String agentJarPath, List<String> classPathsList);
-
Class字节码(走内存)热更新
/** * 基于java源码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param javaPathsList * 要进行更新的java类文件的绝对路径集合 */ ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(List<String> javaPathsList); ///ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(String agentJarPath, List<String> javaPathsList); ///ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(String pid, String agentJarPath, List<String> javaPathsList);
相关资料
- 本文已被收录进《程序员成长笔记》 ,笔者JustryDeng
以上是关于class热更新的主要内容,如果未能解决你的问题,请参考以下文章
使用Arthas热更新时,lombok注解导致mc命令编译失败