JAVA 动态(手动)加载jar文件

来源:互联网 发布:恒大 知乎 编辑:程序博客网 时间:2024/06/07 02:18

//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});