在编译成Javascript时使用Java标准库Kotlin

Use Java Standard Lib for Kotlin when compiling to Javascript

本文关键字:Java 标准 Kotlin 编译 Javascript      更新时间:2023-09-26

我已经在Kotlin中实现了一个用于浏览器的库。当我把它编译成Javascript时,Java标准库的依赖项,例如像PriorityQueue这样的集合类,没有找到。

是否有可能说服编译器找到并编译这些类,或者是否有预编译的Javascript-Java标准库,或者我必须只使用Kotlin标准库?

您只能使用Kotlin标准库。Kotlin -> js编译器无法将java库(或任何jar)转换为javascript。

我不太熟悉Kotlin所做的努力,但是scala.js社区已经将许多标准java库特性移植到scala.js中,以简化jvm和web浏览器之间的转换。对于您想要使用的特定功能,Kotlin需要发生类似的事情。

你可以从kotlin: https://blog.jetbrains.com/kotlin/2014/12/javascript-interop/

引用javascript

您可以尝试将字节码编译为JavaScript的TeaVM。只需使用kotlinc从Kotlin获取字节码,并通过TeaVM运行它。您将无法使用Kotlin2JS提供的JS互操作(相反,您可以使用TeaVM自己的方式与JavaScript通信),但您可以轻松地与Java进行互操作。

[要编译任何 Java字节码到JavaScript,]我强烈建议您看看JTransc jvm -to-just- anything*项目(JTransc@Github)。

JTransc项目似乎更倾向于Kotlin(还有Java和Scala):

将您的Java, Kotlin和Scala代码转换为JavaScript, c++, D, c#, PHP, AS3, Dart和Haxe并在任何地方运行。也可以使用你最喜欢的语言的JVM代码作为库。

JTransc项目针对许多语言和框架,包括利用Haxe的LibGDX后端(我的老最爱)。

JTransc的作者,Soywiz (Carlos Ballesteros Velasco)是一个天才IMHO (Eres un crack, señor!)。

(*用我自己的话来说)

温和声明:我与JTransc项目的作者没有任何关系。