编译为Javascript时使用Kotlin的Java标准库

我在Kotlin中实现了一个在浏览器中使用的库。 当我将其编译为Javascript时,找不到Java标准lib的依赖项,例如像PriorityQueue这样的集合类。

是否有可能说服编译器查找和编译这些类,或者是否有预编译的Javascript-Java标准库,还是只能使用Kotlin标准库?

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

我不太熟悉Kotlin的工作,但scala.js社区已经将许多标准的java库特性移植到scala.js中,以简化jvm和Web浏览器之间的转换。 对于您要使用的特定功能,Kotlin需要类似的东西。

但是,您可以从kotlin引用javascript: https ://blog.jetbrains.com/kotlin/2014/12/javascript-interop/

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

[编译任何 Java字节码到JavaScript,]我强烈建议你看一下JTransc JVM-to-just-about-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 )是一个天才的恕我直言(恕我直言,先生!)。

(*用我自己的话说)

轻度免责声明:我与JTransc项目的作者没有任何关系。

    Interesting Posts