当前位置: 首页 > news >正文

利用arthas热更新class文件

利用arthas热更新class文件

背景:发现一个bug,家里难以复现,需要在现场环境更新几行代码验证。

arthas-boot version: 3.7.1

java -jar arthas-boot.jar启动arthas

1、利用arthas的sc命令查找确定类名称

sc com.**

2、反编译为java文件

jad com.**.Test > /home/Test.java

3、将源码文件放置对应包路径,并修改源码,删除最前部和最后的反编译信息

4、编译代码

mc /home/test.java -d /home

对比代码:哪里报错改哪里, 会存在部分解析异常的。

5、动态加载代码

redefine /home/com/Test.class  /home/com/Test$1.class

提示编译成功,触发代码查看日志。

改动部分需要加少量日志,以确认改动生效。

使用redeline 热更新代码后,在使用jad反编译时,拿到的依然是旧代码。此时,需要根据日志判断是否生效

http://www.lryc.cn/news/410304.html

相关文章:

  • 天机学堂 第四天 高并发优化总结
  • Canva收购Leonardo.ai,增强生成式AI技术能力
  • 前端练习<HtmlCSS>——照片墙(附完整代码及实现效果)
  • PHP基于微信小程序的打车平台-计算机毕业设计源码78689
  • Vue element ui分页组件示例
  • redis存储结构
  • SQL Server 数据误删的恢复
  • 墨烯的C语言技术栈-C语言基础-018
  • C端与B端 - 第一弹 - 理解和区分C端与B端软件开发
  • 穿越多元宇宙的.NET:一场跨平台的星际旅行
  • Python自学第五天
  • Cookie-Monster:一款针对Web浏览器的安全分析与数据提取工具
  • C语言的结构体
  • C语言 写一个函数days,实现某日在本年中是第几天计算。
  • 2-50 基于matlab的遗传模拟退火算法的聚类算法
  • 电脑屏幕录制软件,分享4款(2024最新)
  • 机械学习—零基础学习日志(高数16——函数极限性质)
  • 初识c++——list
  • angular入门基础教程(八)表单之双向绑定
  • 【C++】C++中的find方法介绍
  • JVM—HotSpot虚拟机对象探秘
  • AI测试:人工智能模型的核心测试指标,分类判别、目标检测、图像分割、定量计算分别有哪些指标?
  • 探索LLM世界:新手小白的学习路线图
  • Linux基础命令大全 持续更新中......
  • CPU的起源与发展历程
  • 【C语言】 二叉树创建(结构体,先序遍历,中序遍历,后续遍历)
  • 【和相同的二元子数组】python刷题记录
  • 【单片机毕业设计选题24087】-基于北斗系统的智能路灯
  • [Docker][Docker常用命令]详细讲解
  • onlyoffice用nginx反向代理