Могу ли я использовать module-info.java, если целевой уровень 8? - PullRequest
0 голосов
/ 09 января 2019

Я знаю, что module-info.java распознается jdk9 +

Интересно, можно ли по-прежнему использовать module-info.java в сочетании с целевым уровнем 8.

например. Я хочу, чтобы моя библиотека использовалась в проектах java9 +, которая распознает ее как модуль, экспортирующий определенные пакеты, но также будет использоваться в проектах java8 как обычный jar-файл.

1 Ответ

0 голосов
/ 10 января 2019

Файлы JAR Multi-Release предназначены для той же самой цели.

В JDK, который не поддерживает MRJAR , только классы и ресурсы в корневом каталоге будет виден , а две упаковки будут неразличимы.

В JDK, который поддерживает MRJAR , каталоги соответствующий последующему выпуску платформы Java будет игнорироваться ; Это будет искать классы и ресурсы сначала в Java каталог для конкретной платформы, соответствующий текущему запущенному версия основной платформы Java , , затем выполните поиск по более низким версии и, наконец, корень JAR .

На Java 9 JDK это было бы как был JAR-специфический путь к классу, содержащий сначала версию 9 файлы, а затем корень JAR; на Java 8 JDK этот путь к классу будет содержать только корень JAR.

Для примера этого на основе Maven, посмотрите на это - maven-jep238 .

...