getlibclass.java

来自「用JAVA编写的绘图程序 功能简介: 支持存储」· Java 代码 · 共 64 行

JAVA
64
字号
package drawsmart.itsv.tool;

import java.io.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class GetLibClass
    extends ClassLoader {
  public GetLibClass() {
  }
  public Class loadClass(String name, boolean resolve) throws
      ClassNotFoundException {
    try {
      // 我们要创建的Class对象
      Class clasz = null;

      // 必需的步骤1:如果类已经在系统缓冲之中
      // 我们不必再次装入它
      clasz = findLoadedClass(name);

      if (clasz != null) {
        return clasz;
      }

      // 下面是定制部分
      byte[] classData = null;
      try {
        FileInputStream in = null;
        in = new FileInputStream(name);
        int iby = in.available();
        classData = new byte[iby];
        in.read(classData);
        in.close();

        //获得文件名
        File file=new File(name);
        name=file.getName();
        int index=name.indexOf(".");
        if (index>0)
          name="drawsmart.itsv.swing."+name.substring(0,index);
        clasz = this.defineClass(name, classData,
                                 0, classData.length);
      }
      catch (Exception ex) {
        ex.printStackTrace();
      }

      return clasz;
    }

    catch (Exception ie) {
      throw new ClassNotFoundException(ie.toString());
    }
  }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?