kotlin - 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 并使用缓存和增量编译以使其更快?
解决方案
问题出在你的编译命令中,你只指定了一个编译文件(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 ) 的责任,您需要为此目的使用构建工具。
推荐阅读
- windows - 仅在一个客户端上的 SSL 证书撤销状态
- arrays - 为什么我的代码不起作用,没有任何作业
- java - 生产者消费者使用wait/notifyAll
- c# - 响应大小问题?- 底层连接已关闭:服务器关闭了预期保持活动状态的连接
- python - Python pandas:对分组的第一行和最后一行应用操作并将结果添加为列的最佳方法是什么?
- java - 在kotlin中按asc顺序对字符串列表进行排序
- flutter - 如何使 VS 代码能够在子项目目录中查找代码以自动完成?
- c++ - 为什么显示消息,QSqlQuery :: value: not定位在有效记录上,当我显示信息时
- python - 使用 sqlalchemy 创建的雪花表需要引号 ("") 才能查询
- c# - 一对多 - 导航属性未填充