news 2026/4/2 13:09:57

arthas-boot.jar 热替换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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]$
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/5 8:23:31

你的显卡驱动真的干净吗?深度清理终极指南

还在为游戏卡顿、画面撕裂而烦恼?显卡性能突然下降,新驱动安装频频失败?问题的根源可能就藏在那些看不见的驱动残留中。今天我们就来聊聊如何用专业工具彻底解决这些顽疾,让显卡重获新生! 【免费下载链接】display-dri…

作者头像 李华
网站建设 2026/3/29 21:39:53

使用Miniconda-Python3.11镜像运行自动化爬虫任务

使用Miniconda-Python3.11镜像运行自动化爬虫任务 在数据采集日益成为科研与商业决策核心环节的今天,一个看似简单的爬虫脚本却常常因为“在我电脑上明明能跑”而卡在部署阶段。Python 虽然凭借其丰富的生态广受青睐,但不同项目间对库版本、解释器版本的…

作者头像 李华
网站建设 2026/4/2 7:49:03

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 …

作者头像 李华
网站建设 2026/3/30 16:57:56

从零搭建EPubBuilder:打造专属电子书编辑平台的完整指南

EPubBuilder是一款功能强大的在线EPUB电子书编辑器,让用户能够在浏览器中直接创建和编辑专业级电子书。本指南将详细介绍从环境准备到完整部署的全流程,帮助您快速搭建属于自己的电子书编辑环境。 【免费下载链接】EPubBuilder 一款在线的epub格式书籍编…

作者头像 李华
网站建设 2026/3/14 8:16:00

RTL8852BE Wi-Fi 6驱动终极解决方案:从问题诊断到性能调优

RTL8852BE Wi-Fi 6驱动终极解决方案:从问题诊断到性能调优 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 你是否曾经遇到过新买的Wi-Fi 6网卡在Linux系统下无法正常工作&…

作者头像 李华
网站建设 2026/3/15 2:18:36

Applite:一键搞定Mac软件管理,告别复杂命令行

Applite:一键搞定Mac软件管理,告别复杂命令行 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为Mac软件安装更新而烦恼吗?Applite这款革…

作者头像 李华