Я пытаюсь загрузить модуль во время выполнения, но он работает плохо.Я использовал пример, найденный в классе ModuleLayer:
ModuleFinder finder = ModuleFinder.of(Paths.get("out/artifacts/my_module/"));
ModuleLayer parent = ModuleLayer.boot();
Configuration cf = parent.configuration().resolve(finder, ModuleFinder.of(), Set.of("my.module"));
ClassLoader scl = ClassLoader.getSystemClassLoader();
ModuleLayer layer = parent.defineModulesWithOneLoader(cf, scl);
Class<?> c = layer.findLoader("my.module").loadClass("main.java.org.myproject.MyClass");
Проблема связана с требованиями модуля, который я хочу загрузить.Моя IDE показывает мне эту ошибку:
Модуль javafx.controls не найден, требуется my.module
Однако, модуль "javafx.controls" записывается в дескрипторе модуля:
module my.module {
requires javafx.controls;
exports main.java.org.myproject;
}
Если я добавляю javafx.controls вручную в свой дескриптор основного модуля, он работает, но я хочу загрузить модуль без добавления вручную егонеобходимые модули!
Почему "my.module" не может загрузить javafx.controls?
У кого-нибудь есть решение, пожалуйста?