Kotlin编译器会编译Java文件吗?

7

我有一个项目包含了.java和.kt文件。Kotlin编译器会同时编译.java和.kt文件,还是只编译我的.kt文件?


你可以使用Maven或Gradle在一个项目中编译两个。 - OneCricketeer
2个回答

12
不,kotlinc 只能编译 Kotlin 文件(.kt)。混合语言项目需要同时使用 kotlincjavac。如果引用只流向一边,例如 Java 代码引用 Kotlin 代码而不是反过来,则编译顺序很容易确定。在这种情况下,您需要先编译 Kotlin 代码,然后在编译 Java 代码时将输出包含在 javac 的类路径中。
如果两者更加交织在一起,则会变得更加复杂。从此线程中可以看出,似乎需要先运行 kotlinc 并传入任何引用的 Java 源文件(因为 .class 文件尚不可用)。然后,再将由 kotlinc 构建的类文件包含在类路径中,以便在编译 Java 文件时使用。

1
另一个问题:Kotlin编译器是否将我的Kotlin文件编译为Java字节码,还是也有Kotlin字节码?你知道有哪些好的相关书籍吗? - Gana
Java和Kotlin都编译成相同类型的字节码,即JVM字节码。 - user118967

1

单独来说,它并不需要,然而根据其文档 https://github.com/JetBrains/kotlin ,运行Kotlin编译器的要求之一是JDK,因此如果您有Kotlin,则也有 javac


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接