首页 > 解决方案 > Kotlin 从命令行编译和运行

问题描述

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

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

用户.kt

data class User(val name: String)

播放.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 并使用缓存和增量编译以使其更快?

标签: kotlin

解决方案


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

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

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


推荐阅读