arthas-boot.jar 热替换

下载 arthas-boot.jar

curl-Ohttps://arthas.aliyun.com/arthas-boot.jar

一、现在你还没进 Arthas(很重要)

你刚才只是lspwd
还没有真正 attach JVM

👉 现在请执行这一条命令:

java-jararthas-boot.jar

二、你接下来一定会看到这个界面(正常)

类似这样 👇

Found existing java process, please choose one and hit RETURN. * [1]: 23145 demo20250304-0.0.1-SNAPSHOT.jar

👉 你要做的事:

  • 看清楚是你这个 jar:

    demo20250304-0.0.1-SNAPSHOT.jar
  • 输入前面的数字,比如:

1

然后回车


三、看到这个,说明你成功进 Arthas 了 ✅

Welcome to Arthas!

并且命令行前缀会变成:

[arthas@23145]$

到这一步,你已经成功 attach 正在运行的 JVM
后面所有操作,都是不重启、直接改内存


四、定位 BookController(第一条 Arthas 命令)

在 Arthas 控制台里,输入👇:

sc *BookController*

正常你会看到类似:

com.example.demo.controller.BookController

👉把这个完整包名记住

假设是:

com.example.demo.controller.BookController

五、确认类信息(非常重要,不跳)

sc-dcom.example.demo.controller.BookController

你主要看两点:

  • classLoaderHash
  • location(一般是 BOOT-INF/classes)

只要能正常显示,就可以 redefine


六、现在开始真正热替换(核心一步)

⚠️ 注意:
这条命令里的路径,是 Linux 绝对路径

你的 class 在:

/root/1230/BookController.class

👉 在 Arthas 控制台中执行:

redefine /root/1230/BookController.class

七、成功标志(你要看到这个)

redefine success, size: 1

🎉恭喜你,此时:

  • ❌ 没有重启 jar
  • ❌ 没有改磁盘 jar
  • ✅ BookController 的新逻辑已在 JVM 内存中生效

八、立刻验证(必须做)

方式一:直接调接口

curlhttp://localhost:8080/你BookController的接口

方式二:看日志(强烈推荐)

如果你在新代码里加了类似:

log.info("=== arthas hotfix ===");

那你现在一请求接口,就应该能看到。


九、如果 redefine 报错(别慌,对号入座)

❌ 报VerifyError

👉 你改了方法签名 / 字段 / 注解

❌ 报Unsupported major.minor

👉 class 编译 JDK 和线上不一致

❌ 提示找不到 class

👉 说明这个 Controller 还没被加载(极少)


十、非常重要的一句话(老工程师经验)

Arthas 热修 = 临时止血
一定要记得:后续正常打包 + 重启发布

否则:

  • JVM 一重启
  • 你的修改就全部消失

[root@VM-12-7-centos1230]# java -jar arthas-boot.jar[INFO]JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre[INFO]arthas-boot version:4.1.4[INFO]Found existingjavaprocess, please choose one and input the serial number of the process, eg:1. Then hit ENTER. *[1]:20038demo20250304-0.0.1-SNAPSHOT.jar1[INFO]arthas home: /root/.arthas/lib/4.1.4/arthas[INFO]Try to attach process20038Picked up JAVA_TOOL_OPTIONS:[INFO]Attach process20038success.[INFO]arthas-client connect127.0.0.13658,---. ,------. ,--------.,--. ,--. ,---. ,---. / O\|.--.''--. .--'| '--' | / O \ '.-' | .-. || '--'.'|||.--.||.-.|`.`-.||||||\\||||||||||.-' | `--'`--'`--' '--' `--'`--'`--'`--'`--'`-----' wiki https://arthas.aliyun.com/doc tutorials https://arthas.aliyun.com/doc/arthas-tutorials.html version4.1.4 main_class demo20250304-0.0.1-SNAPSHOT.jar pid20038start_time2025-12-31 00:14:37.452 current_time2025-12-31 00:15:05.480[arthas@20038]$ redefine /root/1230/BookController.class redefine success, size:1, classes: com.example.demo20250304.controller.BookController[arthas@20038]$

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1099433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows下Miniconda Prompt闪退问题排查指南

Windows下Miniconda Prompt闪退问题排查指南 在日常使用Python进行数据科学、AI建模或自动化开发时,一个稳定可靠的环境管理工具至关重要。而当某天你双击“Miniconda Prompt”后,命令行窗口却像幽灵一样瞬间弹出又消失——没有错误提示,无法…

EPubBuilder在线电子书编辑器:从零开始的完整部署手册

EPubBuilder在线电子书编辑器:从零开始的完整部署手册 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder EPubBuilder作为一款功能全面的在线EPUB电子书编辑工具,让用户能够在…

评估每篇技术博客带来的ROI投入产出比

Miniconda-Python3.10 镜像:如何用技术文档撬动研发效率的杠杆 在 AI 模型迭代越来越快、团队协作日益紧密的今天,你有没有遇到过这样的场景? “这个项目昨天还能跑,今天 import torch 就报错了。” “我复现论文代码&#xff0c…

Markdown表格语法在技术文档中的高级应用实例

Markdown表格在技术文档中的高级应用与工程实践 在人工智能项目日益复杂的今天,一个常见的协作痛点是:新成员加入团队后,花费数小时甚至一整天都无法复现出前任开发者的运行环境。日志里报错的包版本不兼容、缺少某个系统级依赖、Jupyter无法…

AI字幕消除革命性突破:video-subtitle-remover一站式解决方案

AI字幕消除革命性突破:video-subtitle-remover一站式解决方案 【免费下载链接】video-subtitle-remover 基于AI的图片/视频硬字幕去除、文本水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API,本地实现。AI-based …

ncmdumpGUI终极指南:轻松解锁网易云音乐加密音频文件

ncmdumpGUI是一款专为Windows平台设计的图形化工具,能够将网易云音乐下载的NCM加密格式文件转换为通用的MP3音频格式。这款工具让您购买的音乐真正实现跨平台自由播放,告别格式限制的困扰。 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换…

MoviePy视频编辑库完整配置指南:从零搭建专业级多媒体处理环境

MoviePy视频编辑库完整配置指南:从零搭建专业级多媒体处理环境 【免费下载链接】moviepy Video editing with Python 项目地址: https://gitcode.com/gh_mirrors/mo/moviepy 掌握MoviePy视频编辑库的安装配置是开启Python多媒体处理之旅的第一步。本指南将带…

EPubBuilder终极指南:零基础快速打造专业电子书

EPubBuilder终极指南:零基础快速打造专业电子书 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编辑器 项目地址: https://gitcode.com/gh_mirrors/ep/EPubBuilder 还在为制作专业电子书而头疼吗?EPubBuilder在线编辑器让这一切变得简单&am…

HTML前端调用Python后端API:Miniconda-Python3.10桥梁作用揭秘

HTML前端调用Python后端API:Miniconda-Python3.10桥梁作用揭秘 在当今Web应用与人工智能深度融合的开发趋势下,一个典型的系统架构往往呈现出“前端负责交互、后端驱动智能”的分工模式。用户通过浏览器中的HTML页面发起操作请求,而真正的数据…

Mac软件管理革命:Applite带来的极致自动化体验

Mac软件管理革命:Applite带来的极致自动化体验 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为繁琐的终端命令和复杂的软件安装流程而头疼吗?App…

基于三极管的蜂鸣器电路原理图(有源驱动)实战案例

蜂鸣器驱动不翻车:一个三极管背后的工程智慧你有没有遇到过这种情况——代码写得没问题,GPIO也配置成了推挽输出,可一通电,蜂鸣器要么“嘀”一声就哑了,要么根本不动,甚至MCU莫名其妙重启?别急&…

DS4Windows完全攻略:解锁PS手柄在PC上的隐藏潜力

DS4Windows完全攻略:解锁PS手柄在PC上的隐藏潜力 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为PlayStation手柄在Windows电脑上水土不服而困扰吗?&#x1…

使用Conda管理CUDA版本:Miniconda-Python3.10镜像实操指南

使用Conda管理CUDA版本:Miniconda-Python3.10镜像实操指南 在深度学习项目开发中,你是否曾遇到过这样的场景?刚写好的模型代码,在本地运行得好好的,推送到服务器却报错“libcudart.so.11.8 not found”;或…

51单片机串口通信实验配置流程:手把手教学

51单片机串口通信实战指南:从寄存器配置到稳定收发你有没有遇到过这样的情况?程序烧录成功,串口助手打开,结果收到的是一堆乱码;或者明明写了发送指令,PC端却迟迟没有回应。别急——这几乎是每个初学51单片…

3步解锁MacBook Pro Touch Bar完整功能:Windows系统终极指南

3步解锁MacBook Pro Touch Bar完整功能:Windows系统终极指南 【免费下载链接】DFRDisplayKm Windows infrastructure support for Apple DFR (Touch Bar) 项目地址: https://gitcode.com/gh_mirrors/df/DFRDisplayKm 还在为MacBook Pro在Windows系统下Touch …

Windows Touch Bar驱动终极解决方案:DFRDisplayKm完整指南

Windows Touch Bar驱动终极解决方案:DFRDisplayKm完整指南 【免费下载链接】DFRDisplayKm Windows infrastructure support for Apple DFR (Touch Bar) 项目地址: https://gitcode.com/gh_mirrors/df/DFRDisplayKm 还在为你的MacBook Pro在Windows系统下Touc…

HTML5 Canvas可视化神经网络结构图实现方法

HTML5 Canvas 可视化神经网络结构图实现方法 在深度学习日益普及的今天,越来越多的研究者和开发者面临一个共同挑战:如何清晰地理解并展示复杂模型的内部结构?尽管 PyTorch 或 TensorFlow 能够轻松构建上百层的神经网络,但打印 m…

Joy-Con Toolkit完全攻略:解锁任天堂手柄隐藏功能的终极工具

Joy-Con Toolkit完全攻略:解锁任天堂手柄隐藏功能的终极工具 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit Joy-Con Toolkit是一款专为任天堂Switch手柄设计的开源控制软件,通过深度挖掘…

Bili2text:解锁B站视频文字内容的终极解决方案

Bili2text:解锁B站视频文字内容的终极解决方案 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 还在为整理B站视频笔记而烦恼吗?每次都…

STM32串口通信协议DMA传输机制全面讲解

让串口“自己干活”:STM32 DMA 实现零CPU干预的高效通信你有没有遇到过这种情况?系统明明只接了一个GPS模块,波特率设为115200,结果主循环卡顿、数据还丢帧?调试发现,CPU几乎90%的时间都在处理UART中断——…