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

How do you resolve a 'java.lang.NoClassDefFoundError' when importing libraries in Kscript?

我是 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")
}

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

解决方法是使用 jdk 1.8.

未来的修复参考这个Dependencies are working only with jdk8