我试图导入Java包以供Kotlin native使用,如下所示;
/* main.kt */
import java.util.*
fun main(args: Array<String>) {
print("Simple program")
}
并使用以下命令
进行编译kotlinc main.kt -o main
我收到了错误消息
main.kt:2:8: error: unresolved reference: java
import java.util.*
显然我需要显示kotlinc在哪里找到java.util,如何在不使用命令行的情况下实现这一点?我在Windows 10 64位上使用Kotlin native 0.3。
答案 0 :(得分:15)
您将无法访问Kotlin Native中的Java包。这个项目的重点是在没有VM的情况下运行Kotlin代码,因此您没有要使用的Java虚拟机(或库)。但是,您可以使用本机C库。您可以找到有关其工作原理的信息here。
来自Kotlin / Native的第一个预览的announcement post:
请注意,我们不打算在Kotlin / Native或Kotlin / JS上运行任意Kotlin / JVM程序。它等同于实现另一个JVM,这对于运行时来说既有很多工作也有很多限制。我们采用另一种方式:为所有平台提供通用语言,同时通过与平台代码的无缝互操作性实现公共库的创建。
答案 1 :(得分:1)
由于我们实际上无法将 JVM-Libs 添加到 Kotlin/Native,正如 zsmb13 已经解释的那样,我想指出 GraalVM(对于那些到达这里但还不了解它的人)。
https://www.graalvm.org/examples/java-kotlin-aot/
他们的方法允许在 Kotlin 中使用 java-libs,因为它将所需的 lib- 和 JVM-类编译到本机可执行文件中。