Java URLClassloader依赖项
在上一个问题中,我问了如何加载远程jar文件。我目前的代码是: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
//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解决了我的问题