eclassloader.java

来自「jrc-src0.4.00源代码发布版(Java客户端框架)」· Java 代码 · 共 55 行

JAVA
55
字号
package efly.clientframe.core.loader;

/**
 * @author efly
 * @version 1.0.0,11/22/02
 */
public final class EClassLoader extends ClassLoader {
	private static int maxsize = 10000;
	private static EClassLoader instance = null;
	/**
	 * Constructor for EflyClassLoader.
	 */
	protected EClassLoader() {
		super();
	}

	public synchronized static EClassLoader getEClassLoader() {
		if (instance == null)
			instance = new EClassLoader();
		return instance;
	}

	public Class find(String classname) {
		try {
			Class clazz = this.findLoadedClass(classname);
			System.out.println(clazz.getName() + " is load");
			return clazz;
		} catch (Exception e) {
			return null;
		}
	}

	public Class load(String namefile, String classname)
		throws java.lang.Exception {
		Class clazz = find(classname);
		if (clazz != null)
			return clazz;
		java.io.FileInputStream in = new java.io.FileInputStream(namefile);
		byte[] classbyte = new byte[maxsize];

		int readsize;
		readsize = in.read(classbyte);
		System.out.println("读文件长:" + readsize);
		in.close();
		return defineClass(classname, classbyte, 0, readsize);
	}

	public void link(String namefile, String classname)
		throws java.lang.Exception {
		Class clink = load(namefile, classname);
		resolveClass(clink);
	}

}

⌨️ 快捷键说明

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