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

使用arthas热替换在线运行的java class文件

如果我们在线的系统有问题,但又无法停机进行发版或者仅仅改了一个java文件需要验证一下功能是否正常,这时可以使用arthas的在线热替换功能来做class文件的在线变更。

1.运行java -jar arthas-boot.jar,启动arathas,并选择正在运行的java的进程;

2.执行 jad --source-only com.xxx.xxx.xxx > /tmp/xxx.java 反编译在线执行的要修改的类,将反编译内容复制到/tmp/xxx.java文件中。文件名与类名相同,后缀命名为.java,然后修改其中我们想要修改的内容。(注意:这里只能修改已存在方法的方法体里的内容,无法修改方法的参数,新增加方法等)
3.通过 sc -d com.xxx.xxx.xxx 能获取到class文件的classLoaderHash的哈希码,这里我获取的类的哈希码为:21b8d17c.
4.通过 mc -c  21b8d17c /tmp/ArthasController.java -d /tmp 该命令会将java文件编译成class文件放到tmp目录中。
最后执行 redefine -c 21b8d17c /tmp/com/xxx/xxx/xxxx.class 就可以将编译后的class文件热布署上去;注意这里重启应用后,热布署的方法功能将会还原。

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

相关文章:

  • RFID测温芯片助力新能源产业安全与能效提升
  • S32K3 工具篇9:如何在无源码情况下灵活调试elf文件
  • Nacos 配置文件总结
  • ASP.NET Web Forms框架识别
  • LG P4119 [Ynoi2018] 未来日记 Solution
  • 流程引擎选型指南
  • 基于大模型预测带状疱疹(无并发症)诊疗方案的研究报告
  • 哈工大计统大作业-程序人生
  • 设计模式——装饰器设计模式(结构型)
  • 途景VR智拍APP:开启沉浸式VR拍摄体验
  • Linux环境搭建MCU开发环境
  • Android高级开发第一篇 - JNI(初级入门篇)
  • Kubernetes RBAC权限控制:从入门到实战
  • python实战项目71:基于Python的US News世界大学排名数据爬取
  • 【基础算法】高精度(加、减、乘、除)
  • 跨平台开发框架electron
  • Windows最快速打开各项系统设置大全
  • 嵌入式编译工具链熟悉与游戏移植
  • DeepSeek-R1-0528,官方的端午节特别献礼
  • LNMP环境中php7.2升级到php7.4
  • 001 flutter学习的注意事项及前期准备
  • FactoryBean 接口
  • CS144 - Lecture 1 记录
  • 【Redis】大key问题详解
  • 【数据结构】——二叉树--链式结构
  • TKernel模块--杂项
  • 充电便捷,新能源汽车移动充电服务如何预约充电
  • laya3的2d相机与2d区域
  • 2024 CKA模拟系统制作 | Step-By-Step | 19、题目搭建-升级集群
  • 47道ES67高频题整理(附答案背诵版)