java动态加载jar时,jar中还有第三方jar无法加载的解决方法
当java插件化开发时,即一个java程序在运行的情况下动态加载另一个jar,网上大多数的方法如下
public static void main(String[] args)
throws MalformedURLException, ClassNotFoundException, InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
String jarPath = "C:\\Users\\ricozhou\\Desktop\\tt.jar";
File jarFile = new File(jarPath);
String className = "test3.Test1";
URL url = jarFile.toURI().toURL();
ClassLoader system = new URLClassLoader(new URL[] { url }, Thread.currentThread().getContextClassLoader());
Class<?> cs = system.loadClass(className);
Object object = cs.newInstance();
System.out.println(cs.getMethod("test").invoke(object));
}
使用自定义类加载器加载,本来没什么问题,而且示例也都是一些简单的helloworld,但是当tt.jar中引入了第三方jar时,方