我有一个包含.java和.kt文件的项目。 Kotlin编译器是否编译.java和.kt文件,还是只编译我的.kt文件?
答案 0 :(得分:8)
不,kotlinc
仅编译Kotlin文件(.kt
)。混合语言项目需要合并kotlinc
和javac
。如果引用仅以一种方式流动,例如,如果Java代码引用Kotlin代码而不是相反,那么编译顺序很容易理解。在这种情况下,您将首先编译Kotlin代码,然后在编译Java代码时将类路径中的输出包含到javac
。
如果两者交织得更紧密,那就变得有点复杂了。查看this thread,您似乎需要首先运行kotlinc
,传入任何引用的Java源文件(因为.class
文件尚未可用) 。编译Java文件时,kotlinc
构建的类文件可以包含在类路径中。
答案 1 :(得分:1)
本身并没有,但运行Kotlin编译器(根据其文档https://github.com/JetBrains/kotlin)的要求之一是JDK,所以如果你有Kotlin你也有javac