Не удалось использовать команду jdeps с параметром --multi-release

Я выполнил следующие команды, но я получил те же ошибки:

$ jdeps --generate-module-info . --multi-release 9 libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set

$ jdeps --generate-module-info . --multi-release 10 libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set

$ jdeps --generate-module-info . --multi-release 11 libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set

$ jdeps --generate-module-info . libs/log4j-core-2.11.1.jar
Error: log4j-core-2.11.1.jar is a multi-release jar file but --multi-release option is not set

В чем проблема с вышеуказанными командами?

Следуйте другим командам о моем окружении:

$ java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4, mixed mode)

$ javac --version
javac 10.0.2

$ jdeps --version
10.0.2

Та же ошибка с java-11-oracle,

1 ответ

Решение

Есть ошибка с опцией --multi-release для работы с модулями

Сбой jdeps при выполнении на не мульти релиз-jar, а --class-path содержит мульти-релиз jar. Обратное тоже верно. Сбой jdeps при выполнении на jar с несколькими релизами с установленным соответствующим флагом --multi-release и --class-path содержит jar с несколькими релизами.

Который суммирует проблему:

Это в основном делает банки с несколькими выпусками непригодными для использования с модулями.

JDK-8229396 исправляет параметр jdeps --generate-module-info для правильного использования версии, указанной в параметре --multi-release, для синтаксического анализа данного файла JAR с несколькими выпусками. Это было исправлено в версии 14. Пожалуйста, опробуйте сборку советника в ближайшие недели.

Другие вопросы по тегам