您的位置:首页 > 其它

使用ClassLoader加载jar文件

2015-04-06 16:17 204 查看
首先创建一个java工程,内容如下,到时导出为jar文件,内容如下:

public class JarLoader implements ILoader {  
    @Override  
    public String sayHello() {  
        return "hello world.";  
    }  
}
然后将该工程导出为jar文件,此处,我们导出为loaddb.jar

新建第二个java工程,此时我们不是和往常一样:将jar文件addbuildpath到该工程中,而是动态加载该jar文件,代码如下:

try {
<span style="white-space:pre">	</span>URL urls = new URL("file:/home/user/Desktop/loadb.jar");  
			 
	URLClassLoader urlLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();  
	Class<URLClassLoader> sysclass = URLClassLoader.class;   
	Method method = sysclass.getDeclaredMethod("addURL", new Class[]{URL.class});  
	method.setAccessible(true);  
	method.invoke(urlLoader, urls);
	String className = "com.test.load.JarLoader";  
	Class<?> tidyClass = urlLoader.loadClass(className);  
	Object obj = tidyClass.newInstance();  
	// 被调用函数的参数  
	Class[] parameterTypes = {};  
	Method method2 = tidyClass.getDeclaredMethod("sayHello", parameterTypes);  
	System.out.println(method2.invoke(obj, null));  
} catch (Exception e) {
	e.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: