生成用来测试的jar包
- 新建一个maven项目,添加一个测试类
- 将该项目打成jar包
public class TestClassLoder {
public String getString(final String s) {
return "result : " + s;
}
public Integer sum(final Integer a, final Integer b) {
return a + b;
}
}
测试动态调用类的方法
package test;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class TestClassLoader {
public static void main(String[] args) throws Exception {
final String jarPath = "file:D:/work/WorkSpace/testLoader/target/testLoader-1.0.jar";
// classPath 注意如果存在包名则需添加包名 PackageName.ClassName
final String classPath = "TestClassLoder";
final URL url = new URL(jarPath);
final URL[] urls = new URL[]{ url };
final URLClassLoader classLoader = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader());
final Class<?> testClass = classLoader.loadClass(classPath);
final Object testObject = testClass.newInstance();
final Method method = testClass.getMethod("getString", String.class);
final String s = method.invoke(testObject, new Object[]{"TestClassLoader"}).toString();
System.out.println(s);
System.out.println(testClass.getMethod("sum", Integer.class, Integer.class)
.invoke(testObject, new Object[]{100, 200}));
}
}