jar包的动态加载和释放

import sun.misc.ClassLoaderUtil;  
import java.io.File;  
import java.lang.reflect.Constructor;  
import java.lang.reflect.Method;  
import java.net.MalformedURLException;  
import java.net.URL;  
import java.net.URLClassLoader;  
  
/** 
 * java jar的动态加载和释放 
 */  
public class TestMain {  
  
  
    public static void main(String[] args) throws MalformedURLException, Exception {  
  
        System.out.println(new File(".").getAbsolutePath());  
        URLClassLoader urlClassLoader=new URLClassLoader(new URL[]{new URL("file:C:\\Users\\Administrator\\IdeaProjects\\test\\data.jar")});  
       Class classStudentServiceImpl=  urlClassLoader.loadClass("StudentServiceImpl");  
       Method method= classStudentServiceImpl.getMethod("getName",new Class[]{});  
        Constructor localConstructor = classStudentServiceImpl.getConstructor(new Class[] {});  
        Object instance = localConstructor.newInstance(new Object[] {});  
       Object ret= method.invoke(instance);  
        System.out.println(ret);  
  
        ClassLoaderUtil.releaseLoader(urlClassLoader);  
        while(true)  
        {  
            Thread.sleep(1000);  
            System.out.println("run");  
        }  
  
  
    }  
}  

猜你喜欢

转载自blog.csdn.net/qq_35232663/article/details/80023314