首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kotlin与JDK 10

Kotlin与JDK 10
EN

Stack Overflow用户
提问于 2018-09-29 17:41:08
回答 2查看 2.6K关注 0票数 0

最近,我将JDK更新为JDK 10,现在我遇到了Kotlin的配置问题,无法运行我的代码。这是因为JDK 10,还是因为其他原因?

我在创建Kotlin项目时从InteliJ获得的提示:

代码语言:javascript
运行
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-29 21:14:31

在撰写本报告时(9月9日)2018年)Kotlin的编译器默认不支持生成JavaJava字节码。

参数-jvm-target 9 (见KT-21959)应该使Kotlin编译器生成版本53的字节码。

因为Java10是bytecode version 54 (参考文献) --我不确定这将如何工作。

不过:

  • 您可以编译到JVM 8字节码,这可以在JVM 9+上正常执行。
  • 如果您想要定义模块(或者使用要求整个程序被模块化的jlink ),您现在可以用Java编写module-info.java文件,并将其放置在与Kotlin文件相同的源根中。
代码语言:javascript
运行
复制
- The Kotlin compiler will correctly limit the accessibility of declarations in non-exported packages in dependent modules. 
- Currently, there are no plans to support module definitions in Kotlin.

除此之外,大多数Java 9-11语言特性(var、REPL、streams等)在Kotlin中已经存在一段时间了,所以使用Java 9-11的主要直接好处是使用JVM进行优化,或者使用模块system / jlink (您可以使用它作为上面的解析)。

票数 2
EN

Stack Overflow用户

发布于 2019-04-17 09:42:30

1.3.30版开始,Kotlin现在支持JVM字节码目标9、10、11、12 (KT-26240 -- LppEdd提到的票证包括在内)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52570944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档