真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用arthas命令redefine實(shí)現(xiàn)Java熱更新

這篇文章主要為大家展示了如何使用arthas命令redefine實(shí)現(xiàn)Java熱更新,內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站制作、做網(wǎng)站、德欽網(wǎng)絡(luò)推廣、小程序開發(fā)、德欽網(wǎng)絡(luò)營(yíng)銷、德欽企業(yè)策劃、德欽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供德欽建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

arthas 是一個(gè) Java 開源診斷神器。

今天分享一個(gè)非常重要的命令 redefine ,主要作用是加載外部的 .class 文件,用來替換 JVM 已經(jīng)加載的類,總結(jié)起來就是實(shí)現(xiàn)了 Java 的熱更新。

redefine 在一下幾種情況中會(huì)失?。?、增加了 field ;2、增加了 method ;3、替換正在運(yùn)行的方法。

前兩個(gè)比較好理解,第三個(gè)意思就是這個(gè)方法必須結(jié)束之后才會(huì)被替換,如果有個(gè)方法開始運(yùn)行之后就不會(huì)跳出,那么這個(gè)方法所在的類是無法被替換的,類似無限循環(huán)的方法。

中間提到了將本地的 .class 文件上傳到服務(wù)器的技巧,個(gè)人沒有采用,如果是要熱更新,完全可以利用 mc 這個(gè)命令在服務(wù)端編譯更新后的代碼,然后進(jìn)行本地替換。

arthas命令redefine實(shí)現(xiàn)Java熱更新

代碼

package com.fun;

import com.fun.frame.SourceCode;
import org.slf4j.Logger;

import java.util.ArrayList;
import java.util.List;
public class Fun extends SourceCode {
  int[] ss = new int[1024];
  public static Logger logger = getLogger(Fun.class);
  public static void main(String[] args) {
    List funs = new ArrayList<>();
    while (true) {
      Fun fun = new Fun();
      funs.add(fun);
      sleep(3000);
      test();
      output(funs.size());
    }
  }
  public static void test() {
    logger.info("成功!!!");
  }
}

調(diào)用 test() 方法會(huì)打印日志的,如果是該方法被其他地方調(diào)用,修改之后也會(huì)生效。

以上就是關(guān)于如何使用arthas命令redefine實(shí)現(xiàn)Java熱更新的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。


網(wǎng)頁(yè)標(biāo)題:如何使用arthas命令redefine實(shí)現(xiàn)Java熱更新
分享鏈接:http://weahome.cn/article/pjhdig.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部