本篇文章我们讨论一下Instrumentation如何实现热加载以及使用过程中需要注意的一些地方。
Instrumentation基础
关于instrumentation的基础知识 。可以阅读此篇文章。小编也是通过阅读此篇文章,加深对instrumentation理解的。
在实际项目中的应用及其需要注意的问题
那instrumentation怎么在热加载中使用呢?又有哪些注意的地方呢?接下来我们一一去说这些问题。
项目中的实际应用
public final class PremainReload {
private static Instrumentation inst = null;
public PremainReload () {
}
public static void premain(String premainArgs, Instrumentation i) {
inst = i;
}
public staitic void reload(Class<?> cls, File file) throws Exception {
byte[] code = loadBytes(file);
ClassDefinition def = new ClassDefinition(cls, code);
inst.redefineClasses(new ClassDefinition[]{
def});