最近我将JDK更新为JDK 10,现在我遇到了Kotlin的配置问题,我无法运行我的代码。这是因为JDK 10还是因为其他原因?
我在创建Kotlin项目时从IntelliJ获得的提示:
Configure Kotlin
Added /Applications/IntelliJ IDEA CE.app/Contents/plugins/Kotlin/kotlinc/lib/kotlin-stdlib-jdk7.jar to library configuration
Added /Applications/IntelliJ IDEA CE.app/Contents/plugins/Kotlin/kotlinc/lib/kotlin-stdlib-jdk7-sources.jar to library configuration
Added /Applications/IntelliJ IDEA CE.app/Contents/plugins/Kotlin/kotlinc/lib/kotlin-stdlib-jdk8.jar to library configuration
Added /Applications/IntelliJ IDEA CE.app/Contents/plugins/Kotlin/kotlinc/lib/kotlin-stdlib-jdk8-sources.jar to library configuration
在撰写本文时(2018年9月),Kotlin的编译器默认不支持生成Java 9+字节码。
参数-jvm-target 9
(see KT-21959)应该使Kotlin编译器生成版本53的字节码。
由于Java 10是bytecode version 54
(reference) - 我不确定这是如何工作的。
仍然:
module-info.java
文件,并放在与Kotlin文件相同的源根目录中。
Kotlin编译器将正确限制依赖模块中非导出包中声明的可访问性。
目前,没有计划支持Kotlin中的模块定义。除此之外,大多数Java 9-11语言功能(var,REPL,流改进等) - 已经在Kotlin中存在了一段时间,因此使用Java 9-11的主要直接好处是使用JVM进行优化,或模块系统/ jlink(您可以使用上面描述的)
从version 1.3.30开始,Kotlin现在支持JVM字节码目标9,10,11,12。(KT-26240 - LppEdd提到的票 - 包括在内。)