📄 tanghanclassloader.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 + -