Поддерживает ли Kotlin Java 11? - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь использовать Kotlin V1.2.70, Gradle V4.10.1 и Java 11. При компиляции проекта с использованием gradle выдается ошибка «Неизвестная целевая версия JVM: 11. Поддерживаемые версии: 1.6, 1.8».

Поддерживает ли компилятор Kotlin Java 11 (создает код, совместимый с Java 11 JVM)?Если это так, как настроить это с Gradle?

Ответы [ 2 ]

0 голосов
/ 23 июля 2019

Компилятор Kotlin поддерживает версии байт-кода JVM 9, 10, 11 и 12 в качестве целевых с Kotlin 1.3.30 ( changelog ).

До 1.3.30 только JVMВерсии 1.6 и 1.8 были поддержаны как цели.Поскольку вы использовали 1.2.70, указание байт-кода JVM 11 в качестве цели привело к указанной вами ошибке.

Существует два решения:

  • Укажите 1.8 как версию целевого байт-кода JVM,Как сказал @yole в своем ответе, это полностью совместимо с JVM 11. На самом деле, как уже упоминалось в changelog Kotlin 1.3.30 , более новые версии целевого байт-кода JVM в настоящее время не добавляют никаких оптимизаций байт-кода, кромете, которые поддерживаются в 1.8, так что на самом деле это пока не имеет никакого значения.

  • Обновите до Kotlin 1.3.30 (или новее), тогда вы можете оставить 11 как JVMцелевое значение байт-кода.Преимущество заключается в том, что вы автоматически воспользуетесь дополнительной оптимизацией байт-кода в будущих версиях компилятора Kotlin.

0 голосов
/ 19 октября 2018

Байт-код, сгенерированный компилятором Kotlin, когда целевая версия установлена ​​на 1.6 или 1.8, полностью совместим с JVM 11.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...