读书人

通过URLClassLoader实现动态加载指定路

发布时间: 2012-09-06 10:37:01 作者: rapoo

通过URLClassLoader实现动态加载指定路径下所有Jar

示例代码:

package test.tool.gui.dbtool.util;import java.io.File;import java.net.MalformedURLException;import java.net.URL;import java.net.URLClassLoader;import org.apache.log4j.Logger;import test.tool.gui.dbtool.consts.Const;public class JarLoadUtil {private static Logger log = Logger.getLogger(JarLoadUtil.class);private static URL lib_url = ClassLoader.getSystemClassLoader().getResource("lib");private static URLClassLoader loader = null;/* * 加载lib目录下所有jar文件,并返回相应的的URLClassLoader */public static URLClassLoader getURLClassLoader(){if(loader == null){String fileNames[] = listFileNames();if(fileNames != null && fileNames.length > 0){ URL urls[] = new URL[fileNames.length];for(int i = 0;i < fileNames.length;i++){try {urls[i] = new URL(lib_url+"/"+fileNames[i]);} catch (MalformedURLException e) {if("true".equals(ConfigUtil.getConfInfo().get(Const.IS_LOG)+"")){log.error("加载lib目录下jar文件出错!",e);}throw new RuntimeException("加载lib目录下jar文件出错!",e);}}loader = new URLClassLoader(urls);}}return loader;}/* * 查询lib目录下的所有文件名称 */private static String[] listFileNames(){File file_directory = new File("lib");return file.list();}}

?

?

使用:

URLClassLoader loader = JarLoadUtil.getURLClassLoader();Class<?> clazz = loader.loadClass(ds.getDriverClassName());Driver driver = (Driver)clazz.newInstance();Properties p = new Properties();p.put("user", ds.getUsername());p.put("password", ds.getPwd());Connection con = driver.connect(ds.getUrl(), p);

?

http://huangqiqing123.iteye.com/blog/1461624

?

读书人网 >其他相关

热点推荐