Gradle Kotlin支持Java11吗?
我正在尝试使用Kotlinv1.2.70、Gradlev4.10.1和Java11。使用gradle编译项目时,出现一个错误,提示“未知JVM目标版本:11。支持的版本:1.6、1.8”Gradle Kotlin支持Java11吗?,gradle,kotlin,jvm,Gradle,Kotlin,Jvm,我正在尝试使用Kotlinv1.2.70、Gradlev4.10.1和Java11。使用gradle编译项目时,出现一个错误,提示“未知JVM目标版本:11。支持的版本:1.6、1.8” Kotlin编译器是否支持Java11(生成与Java11JVM兼容的代码)?如果是这样,如何使用gradle进行配置?当目标版本设置为1.6或1.8时,Kotlin编译器生成的字节码与JVM 11完全兼容。自Kotlin 1.3.30()以来,Kotlin编译器支持JVM 9、10、11和12字节码版本作为目
Kotlin编译器是否支持Java11(生成与Java11JVM兼容的代码)?如果是这样,如何使用gradle进行配置?当目标版本设置为1.6或1.8时,Kotlin编译器生成的字节码与JVM 11完全兼容。自Kotlin 1.3.30()以来,Kotlin编译器支持JVM 9、10、11和12字节码版本作为目标 在1.3.30之前,仅支持JVM1.6和1.8字节码版本作为目标。由于您使用了1.2.70,将JVM 11字节码指定为目标导致了您提到的错误 有两种解决方案:
- 将1.8指定为JVM目标字节码版本。正如@yole在回答中所说,这与jvm11完全兼容。事实上,正如在中所提到的,较新的JVM目标字节码版本目前没有添加任何字节码优化,超出了1.8中支持的字节码优化,因此目前它确实没有任何区别
- 升级到Kotlin 1.3.30(或更新版本),然后可以保留11作为JVM字节码目标值。其优点是,在Kotlin编译器的未来版本中,您将自动受益于额外的字节码优化
1.6
(默认)、1.8
、9
、10
、11
、12
、13
和14
-jvm目标
指定生成的JVM字节码的目标版本。可能的值为1.6、1.8、9、10、11、12、13和14。默认值为1.6
是的,它完全支持Java 11。这是否意味着我必须用JVM 8执行gradle任务“compileKotlin”?否。运行Kotlin编译器所用的JVM版本与编译器生成的字节码版本无关。但当我为gradle任务compileKotlin任务将JVM设置为11时,我遇到了错误未知的JVM目标版本:11。支持的版本:1.6、1.8“build.gradle中的JVM目标版本指定Kotlin编译器生成的字节码版本。它与用于执行Gradle任务的JVM版本无关。再一次:将jvmTarget设置为1.8,不必担心其他任何事情,一切都会正常工作。@Suresh它将在某个时间点添加,但我不能给出任何具体的时间范围。您将kotlin生成的字节码版本与jvm版本混淆,您可以生成任何内容并在jvm 11上运行它。。这就是为什么90%的java开发人员使用java 8,但在jvm 11上运行它。。。