在Kscript中导入库时,如何解决“ java.lang.NoClassDefFoundError”?

时间:2020-03-24 11:48:38

标签: maven kotlin kotlin-script

我是Kotlin脚本的新手,我正在尝试使用Kscript导入库。我一直在遵循这些教程,并尝试使用一个非常简单的脚本(如下所示)来导入几个库。当我运行脚本时,出现以下错误(此错误在我尝试执行的任何导入操作中都会发生)。当我删除导入时,脚本运行良好。关于如何在代码中修复导入的任何想法?

错误消息:

[kscript] Resolving dependencies...
[kscript]     Resolving org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2...Exception in thread "main" java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException

我的代码:

#!/usr/bin/env kscript

@file:MavenRepository("central", "https://repo.maven.apache.org/maven2/")
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2")
@file:DependsOn("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.2")

import kotlinx.coroutines.*

println("Script is running with ${args.size} args passed")

for(arg in args) {
    println("arg: $arg")
}

1 个答案:

答案 0 :(得分:2)

当您使用jdk 9+时,此脚本将失败,并在Kotlin 1.3.x上导致org/ietf/jgss/GSSException出现NoClassDefFoundError。

要解决此问题,请使用jdk 1.8。

将来的修复请参考此Dependencies are working only with jdk8