package com.example.dynamicDemo;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class loadJar {
public static void main(String[] args) {
//jar包地址
String jarPath="E:/soft/jarDemo-1.0-SNAPSHOT.jar";
try {
//获取生成的URL地址
URL url1 = new URL("file:"+jarPath);
//获取类加载器
URLClassLoader myClassLoader1 = new URLClassLoader(new URL[]{url1}, Thread.currentThread()
.getContextClassLoader());
//获取对应的类
Class<?> myClass1 = myClassLoader1.loadClass("com.example.SaleAction");
//获取实例
Object action1 = myClass1.newInstance();
System.out.println(action1);
//获取方法
Method method=myClass1.getDeclaredMethod("execute",String.class);
Method method1=myClass1.getDeclaredMethod("execute");
Method method2=myClass1.getDeclaredMethod("execute",Integer.class);
method.setAccessible(true);
//将实例传入,执行方法
method.invoke(action1,"hello,world!");
method1.invoke(action1);
method2.invoke(action1,213);
}
catch (Exception e){
e.printStackTrace();
}
finally {
}
}
}
interface IAction{
void execute();
}
java反射加载jar包
最新推荐文章于 2022-06-06 11:19:26 发布