我似乎在为我正在开发的应用程序的模块加载器中加载类时遇到问题。基本上,我将要加载的所有类都扩展了另一个类,该类位于实际应用程序的包中。出于我们的目的,我们将其称为模块。模块位于实际应用程序之外的单独文件夹中。
加载器遍历一个文件夹并对任何扩展名为 .class的文件执行loadFile()方法。所有类都具有作为 Module 类的包声明,以及类头中的extends Module声明。
这是loadFile()方法,排除了标头和异常子句:
String fileName = file.getName();
String className = fileName.replace(".class", ""); //Strips extension
Class<?> aClass = Class.forName(className, true, new URLClassLoader(new URL[] { file.toURI().toURL() }));
Class<? extends Module> modClass = aClass.asSubclass(Module.class);
return modClass.getConstructor().newInstance();
我不断在第三行收到ClassNotFoundException。除此之外,如果没有抛出ClassNotFoundException ,所有依赖关系都会得到解决吗?