- 如何确定需要更新的表\class文件
- cmd命令传入
- 放在指定的文件夹
- 代码热更,热替换
- classReloader
- premain可以获取instrumentation
- 编译成jar,需要一些属性
- 启动参数:-javaagent
- 需要再启动的时候就开启代理
- agentmain也可以拿到instrumentation
- 编译成jar
- updatemain进程 通过pid拿到游戏服的vm
- vm.loadAgent() 调用loadAgent.jar的loadAgent函数
- 不需要在启动的时候开启代理
- instrumentation.redifineClass替换class文件
- ClassFileTransformer
- 数据热更
- 需要reload的方法注册在map中
- 传入类名,在map中找到对应的reload方法,invoke