Arthas的redefine命令

需求場景

  • 舉個栗子,在線上代碼某個class的方法添加日誌輸出,修改方法返回結果,但是,又不想直接修改class

做法

  • 1.上傳修改後的class文件到服務器任意路徑,比如:/root/java/HelloController.class
  • 2.下載arthas-boot.jar上傳到服務器,啓動:java -jar arthas-boot.jar
  • 3.根據pid選擇要修改class的線上程序
  • 4.通過redefine加載修改後的class文件,redefine /root/java/HelloController.class
  • 5.驗證效果,結束
  • 6.這個方式只是修改運行時內存,class文件並沒有改變,服務重啓就失效了

效果

在這裏插入圖片描述
參考:
https://alibaba.github.io/arthas/quick-start.html#arthas
https://alibaba.github.io/arthas/redefine.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章