实现简单的代码热替换
来源:互联网 发布:淘宝发布商品类目查询 编辑:程序博客网 时间:2024/05/22 04:04
package com.hotswap;import java.io.File;import java.io.FileInputStream;import java.io.IOException;/** * Created by huangzhw on 2016/9/8. */public class HotSwapTest { public static void main(String[] args) throws Exception{ while(true){ HotSwapClassLoader hotSwapClassLoader = new HotSwapClassLoader(); //所有在M类中所用到的类,都会通过HotSwapClassLoader进行加载 //加载时先调用loadClass(在LoadClass中定义,默认支持双亲委派),使用父加载器向上加载。 //只有所有父加载器都加载失败时,才调用findClass加载并生成类!!! //由于双亲委派的存在,所以对于自加载的类可以通过反射使用,也可以通过接口使用(接口类会由SystemClassLoader加载),在子类中加载接口时,会返回SystemClassLoader加载的对象。 Class<?> cls = hotSwapClassLoader.findClass("M"); Object target = cls.newInstance(); cls.getDeclaredMethod("prt").invoke(target); Thread.sleep(5000); } } private static class HotSwapClassLoader extends ClassLoader{ @Override protected Class<?> findClass(String name) throws ClassNotFoundException { File f = new File("D:\\M.class"); long size = f.length(); byte[] bs = new byte[(int)size]; try(FileInputStream fins = new FileInputStream(f)){ fins.read(bs); }catch (IOException ie){ System.out.println(ie); } return defineClass(name, bs, 0, (int)size); } }}
0 0
- 实现简单的代码热替换
- 开启websphere的热代码替换功能
- 基于Instrumentation的JAVA代码热替换
- Python代码热替换
- 使用自己的ClassLoader实现热替换
- 使用自己的ClassLoader实现热替换
- 使用自己的ClassLoader实现热替换
- 热部署机制的原理和编写简单demo实现类的替换
- 简单的几行小代码,实现Android程序布局替换。
- 再谈Erlang代码热替换
- 替换dex实现热修复
- 一步步手动实现热修复(三)-Class文件的替换
- 一步步手动实现热修复(三)-Class文件的替换
- JAVA代码的热修复实现
- Java Class的热替换 自定义ClassLoader加载.class(java热部署实现 )
- java类的热替换
- Java 类的热替换
- java类的热替换
- 使用Maven创建Web项目
- POJ 1416 Shredding Company
- zTree点击文字勾选复选框
- 关于TextView的高度的坑
- hdu 5820 可持久化线段树
- 实现简单的代码热替换
- 用JS获取地址栏参数的方法(超级简单)
- 选票统计
- 史上最全最强SpringMVC详细示例实战教程
- 发现了一个非常好用的 免费 仿真终端 MobaXterm 感觉比 SecureCRT 好用
- python 自动重连wifi windows
- Spring基础
- js实现冒泡排序
- win7 32位系统下安装paddle