如何将 `kotlinx` 与命令行编译器 (kotlinc) 一起使用

问题描述 投票:0回答:1

我是 Kotlin 新手,所以也许这是一个愚蠢的问题,但我在互联网上没有找到任何关于这个问题的信息。我的问题是在使用普通 kotlinc 编译器编译文件时如何使用

kotlinx
包(如协程函数)。我正在编译我的程序

kotlinc main.kt

当我尝试

import kotlinx.coroutines.*

我收到以下错误消息:

error: unresolved reference: kotlinx

我是否必须使用任何不同的参数调用编译器或安装某些东西?或者我必须使用另一个构建系统,例如 Gradle?

kotlin jvm kotlin-coroutines kotlinc
1个回答
0
投票

完全在命令行上完成这件事是非常痛苦的。我强烈建议使用 Gradle/Maven。

首先,您需要下载协程 jar - 这不是标准库的一部分。 Here 是 Maven 上的页面。假设您想要版本 1.9.0。您可以从here下载kotlinx-coroutines-core-jvm-1.9.0.jar。

然后让我们制作一个非常简单的示例 Main.kt 文件

import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking

fun main() =
    runBlocking {
        launch {
            delay(1000)
            println("Kotlin Coroutines World!")
        }
        println("Hello")
    }

您可以使用协程 jar 作为类路径将其编译为 .jar。

kotlinc -cp kotlinx-coroutines-core-jvm-1.9.0.jar Main.kt -include-runtime -d output.jar

然后您可以使用output.jar 和协程jar 作为类路径来运行output.jar 中的

MainKt
类。请注意此处的类路径分隔符 - Windows 上为
;
,macOS/Linux 上为
:

java -cp kotlinx-coroutines-core-jvm-1.9.0.jar:output.jar MainKt

理论上,如果你直接使用

java -jar
运行 jar 也应该可以工作,但是由于某种原因这不起作用......

最终,只需使用 Gradle,它几乎可以为你完成所有事情。

© www.soinside.com 2019 - 2024. All rights reserved.