【问题标题】:How to compile and run Kotlin code involing coroutines on Windows如何在 Windows 上编译和运行涉及协程的 Kotlin 代码
【发布时间】:2021-09-27 14:49:25
【问题描述】:

我想多学习 Kotlin 协程,但有时懒得在 Android 手机上调试,所以更喜欢 PC。

这是sample code

import kotlinx.coroutines.*

fun main() = runBlocking { // this: CoroutineScope
    launch { // launch a new coroutine and continue
        delay(1000L) // non-blocking delay for 1 second (default time unit is ms)
        println("World!") // print after delay
    }
    println("Hello") // main coroutine continues while a previous one is delayed
}

让我们编译它:

kotlinc CoMain01.kt -cp C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar -include-runtime -d CoMain01.jar

看起来不错。 CoMain01.jar 已生成并且没有错误消息/警告。未解决的问题是:如何运行jar?

java -jar -cp C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar CoMain01.jar

java -cp C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar CoMain01.jar

不工作。相同的错误信息:

错误:无法找到或加载主类 CoMain01.jar 原因: java.lang.ClassNotFoundException: CoMain01.jar

我在 Windows 10 上安装了 OpenJDK 运行时环境 Corretto-11.0.12.7.1 和 Kotlin 1.5.30(在 C:\Kotlin 上)。

感谢任何帮助/信息。

【问题讨论】:

  • 如果您使用-cp,则必须删除-jar 部分并指定主类的全名,例如java -cp C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar;CoMain01.jar MainKt
  • 啊,我明白了。好的明白。谢谢你:)

标签: kotlin


【解决方案1】:

您需要在类路径中指定两个 jar,然后给出要运行的主类的名称作为参数。

主类基于包含main() 方法的文件命名。如果你的文件是main.kt,那么主类名就是MainKt。在这种情况下,以下应该起作用:

java -cp "C:\kotlin\lib\kotlinx-coroutines-core-jvm.jar;CoMain01.jar" MainKt

但老实说,使用 IDE 对于小型本地实验会更实用:)

【讨论】:

  • 很好。我将设置 IntelliJ,然后 :D 。顺便说一句,另一个好奇心:如果我想改用 java -jar 怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2010-11-20
相关资源
最近更新 更多