⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tanghanclassloader.java

📁 J2EE eclipse 下开发数据库一个插件
💻 JAVA
字号:
/*
 * Created on 2003-5-18
 *
 */
package com.tanghan.plugin;

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.HashMap;

import org.apache.log4j.Logger;

import com.tanghan.util.DealString;
import com.tanghan.util.Log;

/**
 * @author Jerry Tang
 * @version v0.1.0
 * @copyright  (C) 2003 Tanghan Studio
 *
 */
public class TanghanClassLoader {
	//当前的ClasLoader实例
	private ClassLoader classLoader;
	//日志类
	private static Logger logger = Log.getInstanse().getLogger();
	//记录已载入的类包路径
	private HashMap jarFileList;
	
	
	public TanghanClassLoader(ClassLoader parent)
	{
		classLoader = parent;
		jarFileList = new HashMap();
	}	
/*
	public TanghanClassLoader(String fileName,ClassLoader parent) throws IOException
	{
		this(new File(fileName).toURL(),parent);
	}

	public TanghanClassLoader(URL url,ClassLoader parent)
	{
		this(new URL[] { url },parent);
	}

	public TanghanClassLoader(URL[] urls,ClassLoader parent)
	{
		super(urls, parent);
		classLoader = this;
	}
*/
	public boolean loadJarFile(String fileName){
		synchronized(classLoader){
			if(jarFileList.containsKey(DealString.trim(fileName))){
				return true;
			}else{
				URLClassLoader clLoader = null;
				try{
					clLoader = new  URLClassLoader(new URL[] { new File(fileName).toURL() },classLoader);
				}catch(IOException ex){
					logger.error(ex.getMessage(),ex);
					return false;
				}
				jarFileList.put(DealString.trim(fileName),clLoader);
				classLoader = clLoader;
				return true;
			}
		}
	}

	/* (non-Javadoc)
	 * @see java.lang.ClassLoader#loadClass(java.lang.String)
	 */
	public Class loadClass(String arg0) throws ClassNotFoundException {
		// TO_O Auto-generated method stub
		return classLoader.loadClass(arg0);
	}

	/**
	 * @return
	 */
	public ClassLoader getClassLoader() {
		return classLoader;
	}

}

⌨️ 快捷键说明

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