我们在工作的过程中会遇到java应用已经部署或升级投入使用,发现某个单元文件有bug需要修正,但是客户的应用目前不能停止,而且不能因为一个非致命的bug来进行整个平台的一次升级。我们需要进行单文件的更新在不停线的情况下。
下面是具体的操作步骤
一、下载arthas工具 arthas.aliyun.com
二、对需要进行更新的java单元文件进行编译,生成最新的 class。
intelj里的操作:打开编辑的java单元文件,构建|重新编译 .....java,新生成的class文件与原代码文件会在同一目录,将生成好的class文件复制到服务器项目的目录中,或者自己制定一个目录。这个是无关的只要便于管理文件就好。
三、运行arthas进行更新
1、在arthas目录下,cmd 命令启动arthas-boot.jar文件
java -jar arthas-boot.jar
2、系统会列示已经运行的java程序清单,根据需要更新的应用,输入对应的序号回车。
3、输入命令 retransform D:/xxxxx/xxxServiceImpl.class 回车执行覆盖,系统会提示 retransform success, size: 1, classes
4、通过命令 retransform -l 可以显示已经更新的文件清单列表
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。