JAVA 动态(手动)加载jar文件
- - CSDN博客编程语言推荐文章//filePath 是jar的绝对路径. //里面是一个url的数组,可以同时加载多个. //根据类名加载指定类,例:. //通过反射调用类中的方法,例如调用addFile方法,有1个String参数和一个int参数:. 如果有返回值,则直接返回需要的值,例:. 作者:kingboy123000 发表于2013-10-23 16:12:30 原文链接.
//filePath 是jar的绝对路径
URL url = new URL("file:"+filePath);
//里面是一个url的数组,可以同时加载多个
URLClassLoader loader = new URLClassLoader( new URL[]{ url } );
//根据类名加载指定类,例:
Class class = loader.loadClass("org.util.fileUtil");
//获取一个类的实例
Object fileUtil = class.newInstance();
//通过反射调用类中的方法,例如调用addFile方法,有1个String参数和一个int参数:
class.getMethod("addFile",new Class[]{String.class,int.class}).invoke(fileUtil,new Object[]{"fileUid",12});
如果有返回值,则直接返回需要的值,例:
int status = (Integer)class.getMethod("addFile",new Class[]{String.class,int.class}).invoke(fileUtil,new Object[]{"fileUid",12});