Используйте Java Standard Lib для Kotlin при компиляции в Javascript

Я использовал библиотеку в Kotlin для использования в браузере. Когда я компилирую его в Javascript, зависимостей от стандартной Java-библиотеки, например классов коллекции, таких как PriorityQueue, не обнаружено.

Можно ли убедить компилятор найти и скомпилировать эти классы, или есть предварительно скомпилированная стандартная библиотека Javascript-Java, или мне нужно использовать только стандартную библиотеку Kotlin?

Вы должны использовать только стандартную библиотеку Kotlin. Компилятор Kotlin -> js не имеет возможности превратить java-библиотеки (или любые jar) в javascript.

Я не так хорошо знаком с усилиями Kotlin, но сообщество scala.js портировало многие стандартные функции java-библиотеки для scala.js, чтобы облегчить переход между jvm и веб-браузером. Что-то подобное должно было произойти для Kotlin для конкретных функций, которые вы хотите использовать.

Однако вы можете ссылаться на javascript из kotlin: https://blog.jetbrains.com/kotlin/2014/12/javascript-interop/

Вы можете попробовать TeaVM, который компилирует байт-код в JavaScript. Просто используйте kotlinc чтобы получить байт-код от Kotlin и запустить его через TeaVM. Вы не сможете использовать JS-взаимодействие из Kotlin2JS (вместо этого вы можете использовать собственный способ 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 нацелен на многие языки и рамки, включая бэкэнд LibGDX , используя Haxe (мой старый фаворит).

Автор JTransc , Soywiz ( Carlos Ballesteros Velasco ) – гений IMHO (¡Eres un crack, señor!).

(*моими словами)

Мягкая оговорка: я никоим образом не связан с автором проекта JTransc.