需求:动态加载jar包,实例化jar包中的类,并调用类中的方法
已知:jar包所在路径和jar包名称,类名已知,类继承的抽象类可以被引入,类中的方法已知
实现方法:
1. 手动调用类加载器动态加载jar包;
2. 应用java中的反射实例化类,得到类的一个实例;
3. 运用类实例调用类方法。
jar包所在路径及jar包名:C:/test_reverse.jar
类名:ReverseService.java
抽象类:AbstractReverseService.java
类中方法:testJava
实现方法:
public void method() {
URL url = new URL("file:///C:/test_reverse.jar");
//使用URL类加载器动态加载jar包
URLClassLoader myClassLoader = new URLClassLoader(new URL[] {url});
Class<?> clazz = myClassLoader.loadClass("ReverseService.java");
AbstractReverseService instance = (AbstractReverseService) clazz.newInstance();
instance.testJava();
}