如何使用阿尔萨斯命令定义实现Java热更新

  介绍

这篇文章主要为大家展示了如何使用阿尔萨斯命令定义实现Java热更新,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

阿尔萨斯是一个Java开源诊断神器。

今天分享一个非常重要的命令<代码>定义>

<代码>定义> 字段> 方法;3,替换正在运行的方法。

前两个比较好理解,第三个意思就是这个方法必须结束之后才会被替换,如果有个方法开始运行之后就不会跳出,那么这个方法所在的类是无法被替换的,类似无限循环的方法。

中间提到了将本地的. class文件上传到服务器的技巧,个人没有采用,如果是要热更新,完全可以利用mc这个命令在服务端编译更新后的代码,然后进行本地替换。

代码

包com.fun;
  
  进口com.fun.frame.SourceCode;
  进口org.slf4j.Logger;
  
  进口java.util.ArrayList;
  进口并不知道;
  公开课有趣的源代码里{延伸
  int[]党卫军=new int [1024];
  公共静态日志记录器=getlog (Fun.class);
  公共静态void main (String [] args) {
  List,乐趣=new ArrayList<的在();
  而(真){
  有趣好玩有趣=new ();
  funs.add(有趣的);
  睡眠(3000);
  测试();
  输出(funs.size ());
  }
  }
  公共静态空白测试(){
  logger.info(“成功! ! !“);
  }
  }

调用测试()方法会打印日志的,如果是该方法被其他地方调用,修改之后也会生效。

以上就是关于如何使用阿尔萨斯命令定义实现Java热更新的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看的到。

如何使用阿尔萨斯命令定义实现Java热更新