Intellij использует путь к модулю, если вы запускаете программу из модуля (intellij), содержащего module-info.java, в противном случае он будет использовать путь к классам.
Я попытался импортировать common4 в качестве модуля, похоже,работать на меня, но я должен был использовать другой аргумент «требует» по сравнению с вашим.Ваше 'require' - это 'commons.collections4', мое - 'org.apache.commons.collections4' (проверьте запись манифеста commons4 для выделенного Automatic-Module-Name и используйте его вместо этого).
Если в манифесте commons4 отсутствует Automatic-Module-Name (отсутствует в версии 4.1 и более ранних), Java может не обнаружить jar как модуль, если имя содержитцифры или недопустимые символы.Поэтому некоторые jav-файлы репозитория maven не будут работать, и Intelli не будет видеть эти jar-модули как модули.
Вы также можете проверить неверное имя файла, используяследующая команда:
jar --file=/path/to/jar --describe-module
Если команда не выполнена, вполне вероятно, что в jar нет записи Automatic-Module-Name и имя файла имеет неправильное имя.
ok
jar --file=C:\temp\jigsaw1-1.0.jar --describe-module
bad
jar --file=C:\temp\jigsaw1.0.jar
--describe-module`
'jigsaw1.0: Неверное имя модуля:' 0 'не является Javaидентификатор '
Поэтому некоторые банки maven могут не обнаруживаться как модули, так как они имеют тенденцию выглядеть одинаково.