mc

mc-retransform在线教程

Memory Compiler/内存编译器,编译.java文件生成.class

  1. mc /tmp/Test.java

可以通过-c参数指定classloader:

  1. mc -c 327a647b /tmp/Test.java

也可以通过--classLoaderClass参数指定ClassLoader:

  1. $ mc --classLoaderClass org.springframework.boot.loader.LaunchedURLClassLoader /tmp/UserController.java -d /tmp
  2. Memory compiler output:
  3. /tmp/com/example/demo/arthas/user/UserController.class
  4. Affect(row-cnt:1) cost in 346 ms

可以通过-d命令指定输出目录:

  1. mc -d /tmp/output /tmp/ClassA.java /tmp/ClassB.java

编译生成.class文件之后,可以结合retransform命令实现热更新代码。

注意,mc命令有可能失败。如果编译失败可以在本地编译好.class文件,再上传到服务器。具体参考retransform命令说明。