使用Arthas实现热更新代码
2023-03-15 23:26:39 时间
在定位问题或快速验证问题的时候,如果还需要编码、推送到仓库、在编译发布,整个流程会比较长,我们可以使用Arthas完成热修改代码,实时看到最新效果
启动arthas
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
反编译&修改类
- 找到对应的类全名: sc命令
# arthas命令: 找到对应的全量类名
sc *.UserController
# sc: Search-Class
# 输出com.example.demo.arthas.user.UserController
- 反编译类:jad
jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
# jad 命令将 JVM 中实际运行的 class 的 byte code 反编译成 java 代码
- 修改类文件
vim /tmp/UserController.java
热编译&热加载
- 查找类加载器
sc -d *UserController | grep classLoaderHash
#输出:classLoaderHash 1be6f5c3
- 热编译
$ mc -c 1be6f5c3 /tmp/UserController.java -d /tmp
#mc: Memory Compiler/内存编译器
- 加载新类
使用redefine命令重新加载新编译好的UserController.class:
redefine /tmp/com/example/demo/arthas/user/UserController.class
参考
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十