我正在尝试创建一个新层(引导层除外),并从其中的特定目录路径加载Java模块(ModuleA)。下面的代码可以成功定位和加载ModuleA本身,但不能解析ModuleA所需的库模块:
ModuleFinder finder = ModuleFinder.of(Paths.get(modulePath));
ModuleLayer parent = ModuleLayer.boot();
Configuration cf = parent.configuration().resolve(finder, ModuleFinder.of(), Set.of(moduleName));
ClassLoader scl = ClassLoader.getSystemClassLoader();
ModuleLayer.Controller newLayer = ModuleLayer.defineModulesWithOneLoader(cf, List.of(parent), scl);
我从resolve
方法中得到以下异常:
Exception in thread "main" java.lang.module.FindException: Module <library module> not found, required by <ModuleA>
您知道如何与ModuleA一起解析所有必需的模块(包括库模块)吗?