# hot-update **Repository Path**: JustryDeng/hot-update ## Basic Information - **Project Name**: hot-update - **Description**: class、日志级别等热更新组件 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-09-19 - **Last Updated**: 2022-11-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: 工具 ## README # class热更新 - [class热更新](#class热更新) - [功能与特性](#font--face幼圆-color--3399ea-功能与特性font) - [maven坐标](#font--face幼圆-color--3399ea-maven坐标font) - [使用说明](#font--face幼圆-color--3399ea-使用说明font) --- ## 功能与特性 - 支持基于 **java源码** ,走 **文件** 进行class热更新 - 支持基于 **java源码** ,走 **内存** 进行class热更新 - 支持基于 **class字节码** ,走 **文件** 进行class热更新 - 支持基于 **class字节码** ,走 **内存** 进行class热更新 ## maven坐标 ```xml com.idea-aedi hot-update-class 2.2.0 ``` ## 使用说明 **记得先引入上述依赖噢,朋友们。** - #### Java源码(走文件)热更新 ```java /** * 基于java源码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param javaPathsList * 要进行更新的java类文件的绝对路径集合 */ ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(List javaPathsList); ///ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(String agentJarPath, List javaPathsList); ///ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(String pid, String agentJarPath, List javaPathsList); ``` - #### Java源码(走内存)热更新 ```java /** * 基于java源码,走内存进行class热更新 * * @param agentJarPath * 代理jar包的绝对路径 * @param javaBytesList * 要进行更新的java源码文件的绝对路径集合 */ ClassHotUpdateExecutor.MEMORY_JAVA_BYTES.execute(List javaBytesList); ///ClassHotUpdateExecutor.MEMORY_JAVA_BYTES.execute(String agentJarPath, List javaBytesList); ``` - Class字节码(走文件)热更新 ```java /** * 基于class字节码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param classPathsList * 要进行更新的class字节码文件的绝对路径集合 */ ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(List classPathsList); ///ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(String agentJarPath, List classPathsList); ///ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(String pid, String agentJarPath, List classPathsList); ``` - Class字节码(走内存)热更新 ```java /** * 基于java源码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param javaPathsList * 要进行更新的java类文件的绝对路径集合 */ ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(List javaPathsList); ///ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(String agentJarPath, List javaPathsList); ///ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(String pid, String agentJarPath, List javaPathsList); ```