问题描述
是否可以在简单的 Kotlin 脚本中从 kotlinx
包中导入类?
myscript.kts:
import kotlinx.serialization.*
import kotlinx.serialization.json.*
println("")
使用 kotlinc -script myscript.kts
运行上述脚本会出现此错误:
error: unresolved reference: kotlinx
当我检查 kotlinc/lib/
目录时,存在 kotlinx-coroutines-core.jar
等。
我使用的是 Kotlin 编译器版本 1.4.0。
解决方法
首先,您拥有的导入与 kotlin 序列化库相关,而不是协程库。 至于运行脚本,您需要指定编译器的依赖项。你可以像这样运行你的脚本:
kotlinc -script myscript.kts -classpath kotlinx-serialization-runtime-0.20.0-1.4.0-rc-95.jar
我使用了旧的 kotlin 序列化运行时,但您需要根据需要调整命令。
,如果将名称更改为 *.main.kts,您可以像执行带有依赖项的简单 bash 脚本一样执行 kotlin
https://raw.githubusercontent.com/yschimke/okurl-scripts/master/commands/tube-status.main.kts
$ ./tube-status.main.kts
Good Service
Good Service
Minor Delays
Part Closure
Minor Delays
Good Service
Minor Delays
Good Service
Part Closure
Good Service
Planned Closure