class热更新

蔚落 2022-09-15 05:50 398阅读 0赞

class热更新

  • class热更新

    • 功能与特性
    • maven坐标
    • 使用说明

功能与特性

  • 支持基于 java源码 ,走 文件 进行class热更新
  • 支持基于 java源码 ,走 内存 进行class热更新
  • 支持基于 class字节码 ,走 文件 进行class热更新
  • 支持基于 class字节码 ,走 内存 进行class热更新

maven坐标

  1. <dependency>
  2. <groupId>com.idea-aedi</groupId>
  3. <artifactId>hot-update-class</artifactId>
  4. <version>{版本号}</version>
  5. </dependency>

使用说明

记得先引入上述依赖噢,朋友们。

  • Java源码(走文件)热更新

    1. /** * 基于java源码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param javaPathsList * 要进行更新的java类文件的绝对路径集合 */
    2. ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(List<String> javaPathsList);
    3. ///ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(String agentJarPath, List<String> javaPathsList);
    4. ///ClassHotUpdateExecutor.BASE64_JAVA_PATHS.execute(String pid, String agentJarPath, List<String> javaPathsList);
  • Java源码(走内存)热更新

    1. /** * 基于java源码,走内存进行class热更新 * * @param agentJarPath * 代理jar包的绝对路径 * @param javaBytesList * 要进行更新的java源码文件的绝对路径集合 */
    2. ClassHotUpdateExecutor.MEMORY_JAVA_BYTES.execute(List<byte[]> javaBytesList);
    3. ///ClassHotUpdateExecutor.MEMORY_JAVA_BYTES.execute(String agentJarPath, List<byte[]> javaBytesList);
  • Class字节码(走文件)热更新

    1. /** * 基于class字节码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param classPathsList * 要进行更新的class字节码文件的绝对路径集合 */
    2. ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(List<String> classPathsList);
    3. ///ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(String agentJarPath, List<String> classPathsList);
    4. ///ClassHotUpdateExecutor.BASE64_CLASS_PATHS.execute(String pid, String agentJarPath, List<String> classPathsList);
  • Class字节码(走内存)热更新

    1. /** * 基于java源码文件的class热更新 * * @param pid * 要热更新的jvm的进程id * @param agentJarPath * 代理jar包的绝对路径 * @param javaPathsList * 要进行更新的java类文件的绝对路径集合 */
    2. ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(List<String> javaPathsList);
    3. ///ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(String agentJarPath, List<String> javaPathsList);
    4. ///ClassHotUpdateExecutor.MEMORY_CLASS_BYTES.execute(String pid, String agentJarPath, List<String> javaPathsList);

相关资料

  • 本文已被收录进《程序员成长笔记》 ,笔者JustryDeng

发表评论

表情:
评论列表 (有 0 条评论,398人围观)

还没有评论,来说两句吧...

相关阅读

    相关 更新

    单来说我的理解就是:当你的文件发现改变的时候页面自己就更新了。不用你再手动刷新页面。无刷新更新 常见的需求如赛事网页推送比赛结果、网页实时展示投票或点赞数据、在线评论或...

    相关 更新

    介绍下 webpack 热更新原理,是如何做到在不刷新浏览器的前提下更新页面   1.当修改了一个或多个文件; 2.文件系统接收更改并通知webpack; 3.we

    相关 更新

    虽然有插件开发,但热更新少不了。 ![Center][] 当我们需要更新插件的时候使用的是插件开发,当我们需要更新宿主程序就需要使用热更新 热更新使用框架bsdif