Используйте 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.

Intereting Posts
Могут ли `SendChannel.offer`,` CompletableDeferred.complete` и подобные быть вызваны внешними сопрограммами? как реализовать Switch, используя привязку данных в android Как назвать поток? Вызов функции в фрагменте представления пейджера из активности Почему я вынужден использовать !! в сочетании с нулевыми проверками? Как передать строку в var без escape-символа в Котлине? Kotlin способ фильтрации максимальных значений из 2 массивов? Пользовательский десериализатор Kotlin Gson для списка Gradle kotlin script,> Плагин с id `kotlin` не найден Что заставляет HtmlUnit загружать страницу магазина PSN? Простой калькулятор, модульное тестирование с использованием KOTLIN со Spek (код выхода -1) Вызвано: android.database.sqlite.SQLiteException: рядом с «org»: синтаксическая ошибка (код 1): при компиляции: Kotlin: обходной путь для no lateinit при использовании настраиваемого сеттера? ClassNotFoundException с ароматами продукта и Kotlin Кинжал 2 не может вводить из подкомпонента (котлин)