Kotlin 从命令行编译和运行

时间:2021-07-24 11:30:01

标签: kotlin

如何编译和运行 kotlin 文件?没有 maven、gradle 或 kotlin-DSL-gradle,只有命令行选项。

我在 play 文件夹中有两个 kotlin 文件

user.kt

data class User(val name: String)

play.kt

fun main() {
  val user = User("Jim")
  println("Hello ${user.name}")
}

我尝试运行它

kotlinc play.kt -cp . -include-runtime -d play.jar && java -jar play.jar
play.kt:2:14: error: unresolved reference: User
  val user = User("Jim")

但是它找不到User类,即使我设置了-cp .,如何使它工作?

附言

是否可以避免构建 jar 并使用缓存和增量编译来使其更快?

1 个答案:

答案 0 :(得分:3)

问题出在你的编译命令中,你只指定了一个编译文件(play.kt),所以编译器看到play.kt引用了User.class,当然在你的类路径中找不到这个文件(< strong>-cp .),因为之前没有编译这个文件,所以需要编译整个文件夹play,跳过-cp参数。< /p>

试试这个:kotlinc play/ -include-runtime -d play.jar && java -jar play.jar

关于缓存和增量编译 - 不,这不是 Kotlin 编译器 (https://kotlinlang.org/docs/compiler-reference.html) 的责任,您需要为此使用构建工具。