1. pom.xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.18</version>
</dependency>
2. JarClassLoaderTest.java
package demo.java.classloader;
import cn.hutool.core.lang.JarClassLoader;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class JarClassLoaderTest {
public static void main(String[] args) throws Exception {
File file = new File("D:/workspace-mine/demo-java/src/main/resources/jar-dianhuabang.jar");
URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{file.toURI().toURL()});
Class<?> clazz1 = urlClassLoader.loadClass("org.suanhua.channel.jar.dianhuabang.DhbClient");
Method method1 = clazz1.getDeclaredMethod("getTimestamp", null);
System.out.println(method1.invoke(null, null));
JarClassLoader jarClassLoader = new JarClassLoader(new URL[]{file.toURI().toURL()});
Class<?> clazz2 = jarClassLoader.loadClass("org.suanhua.channel.jar.dianhuabang.DhbClient");
Method method2 = clazz2.getDeclaredMethod("getTimestamp", null);
System.out.println(method2.invoke(null, null));
System.out.println(clazz1 == clazz2);
}
}