如何在IntelliJ IDEA中启用-Dkotlinx.coroutines.debug?

时间:2018-11-11 16:48:16

标签: intellij-idea kotlin jvm coroutine kotlinx.coroutines

如何在IntelliJ IDEA中启用-Dkotlinx.coroutines.debug? 我有来自coroutines documentation的以下代码:

fun log(msg: String) = println("[${Thread.currentThread().name}] $msg")

fun main() = runBlocking<Unit> {
    val a = async {
        log("I'm computing a piece of the answer")
        6
    }
    val b = async {
        log("I'm computing another piece of the answer")
        7
    }
    log("The answer is ${a.await() * b.await()}")    
}

我试图在“运行->编辑配置”中添加此选项:

enter image description here

但是在此之后,我希望看到以下输出(如文档所述):

[main @coroutine#2] I'm computing a piece of the answer
[main @coroutine#3] I'm computing another piece of the answer
[main @coroutine#1] The answer is 42

但是实际上我看到了普通的输出:

[main] I'm computing a piece of the answer
[main] I'm computing another piece of the answer
[main] The answer is 42

那么如何启用此JVM选项?

1 个答案:

答案 0 :(得分:2)

您正在配置和运行Gradle run目标。表示您使用此参数配置Gradle。但是Gradle不使用此参数来启动您的Kotlin示例。

您应该运行并配置Kotlin目标。您将其视为屏幕快照左侧的第二个节点。

或者如果您真的想使用Gradle,则可以将系统属性传递给JavaVM:

run {
    systemProperties System.properties
}