zoukankan      html  css  js  c++  java
  • 自定义类加载器classLoader

    package cn.bdqn.userconsumer;

    import java.io.*;

    /**
    * 自定义classLoader 类加载器
    */
    public class HelloClassLoad extends ClassLoader {

    /**
    * 自定义类加载器
    * 继承classLoader 重写findClass()方法
    * @param name
    * @return
    * @throws ClassNotFoundException
    */
    @Override
    protected Class<?> findClass(String name) throws ClassNotFoundException {
    File file = new File("F:\test",name.replace(".","\").concat(".class"));
    try {
    FileInputStream inputStream = new FileInputStream(file);
    //FileOutputStream fileoutput = new FileOutputStream(new File("F:/test",name.replace(".","/").concat(".class")));
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
    int by=0;
    while((by = inputStream.read()) !=0){
    outputStream.write(by);
    }

    byte[] bytes = outputStream.toByteArray();
    outputStream.close();

    defineClass(name,bytes,0,bytes.length);
    } catch (Exception e) {
    e.printStackTrace();
    }

    return super.findClass(name);
    }


    public static void main(String[] args) {
    try {
    //使用自定义 classLoader
    ClassLoader classLoader = new HelloClassLoad();
    //加载指定目录下的类文件
    Class<?> aClass = classLoader.loadClass("cn.bdqn.userconsumer.HelloJol");
    HelloJol helloJol = (HelloJol) aClass.newInstance();
    helloJol.Str();
    System.out.println(classLoader.getClass().getClassLoader());
    System.out.println(classLoader.getParent());
    } catch (Exception e) {
    e.printStackTrace();
    }
    }







    }
  • 相关阅读:
    OpenFire源码学习之二:Mina基础知识
    revel + swagger 文档也能互动啦
    Auto Layout 在iOS屏幕适配中的使用
    iOS小技巧
    一种简易的聊天泡泡设置颜色以及添加描边的方式
    做好交互应该克服哪些问题
    jQuery .on() 绑定事件无效
    浅谈iOS的Autolayout
    img 元素无法获取高度的问题
    简易自动化部署服务器集群
  • 原文地址:https://www.cnblogs.com/lixiangang/p/14820177.html
Copyright © 2011-2022 走看看