# 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);
```