Java URLClassloader依赖项

Java URLClassloader依赖项,java,class,loading,Java,Class,Loading,在上一个问题中,我问了如何加载远程jar文件。我目前的代码是: //f is the path to the jar URLClassLoader loader = new URLClassLoader(new URL[]{f.toURI().toURL()}); Class<?> jarClass = Class.forName(main, true, loader); Class<? extends Module> module = jarClass.asSubcla

在上一个问题中,我问了如何加载远程jar文件。我目前的代码是:

//f is the path to the jar
URLClassLoader loader = new URLClassLoader(new URL[]{f.toURI().toURL()});
Class<?> jarClass = Class.forName(main, true, loader);
Class<? extends Module> module = jarClass.asSubclass(Module.class);

Constructor<? extends Module> constructor = module.getConstructor();
System.out.println(constructor);

Module module = constructor.newInstance();
//f是指向jar的路径
URLClassLoader=新URLClassLoader(新URL[]{f.toURI().toURL()});
类jarClass=Class.forName(main、true、loader);

类您可以将应用程序类加载器设置为url类加载器的父级:

URLClassLoader loader = new URLClassLoader(
       new URL[]{f.toURI().toURL()}, Module.class.getClassLoader());
从(类加载机制):

Java平台使用委托模型加载类。这个 基本思想是每个类加载器都有一个“父”类加载器。 加载类时,类加载器首先“委托”搜索 在尝试查找前,将类加载到其父类加载器 类本身


我也遇到了同样的问题,当时我正在使用Java9,将它降级回Java8解决了我的问题