java
10.0.2 + 13 выбрасывает java.lang.module.InvalidModuleDescriptorException
, когда module-info.class
в каталоге в пути к модулю экспортирует пакет, который не находится в том же каталоге.
Это разумное поведение во многих обстоятельствах, но, в моем случае, у меня есть пакет в другом каталоге, который пропатчен в данный модуль с использованием --patch-module
.
Пример:
Модуль m
определен в файле classes/m/module-info.class
.
m
пакет экспорта p
.
module-info.class
является единственным дочерним элементом каталога classes/m
.
Каталог classes/patch
содержит p/Main.class
.
Упрощенная командная строка:
java --module-path classes/m --patch-module m=classes/patch --module m/p.Main
Выше будет выброшено java.lang.module.InvalidModuleDescriptorException
, которое говорит, что «Пакет p не найден в модуле».
Есть ли способ заставить java
не выбрасывать InvalidModuleDescriptorException
, не копируя файлы class
из classes/m
& classes/patch
в тот же каталог или в тот же файл jar