Настройка мультиплатформенного проекта

учитывая, что Kotlin 1.2 представил kotlin-platform-common я пытаюсь создать свой первый общий файл .class , поэтому я сделал следующее:

main.kt :

 package hello fun main() { println("kotlin!") } 

gradle.build :

 group 'h' version 'prn' buildscript { ext.kotlin_version = '1.2.0' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } apply plugin: 'kotlin-platform-common' repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version" } sourceSets { main.kotlin.srcDirs += 'src/kotlin' main.resources.srcDirs += 'src/resources' } jar { manifest { attributes 'Main-Class': 'hello.MainKt' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } 

Затем я запускаю gradle build

Q1- Я не могу найти какой-либо файл .class ? как его создать и где я должен его найти?

Q2- Я получил файл .jar , но как только я попытался запустить его, у меня появилась ошибка:

Ошибка: не удалось найти или загрузить основной класс hello.MainKt

Я попытался запустить его, используя параметр ниже 2, но получил ту же ошибку для бота:

Опция 1:

 kotlin -cp <filename>.jar hello.MainKt 

Вариант 2:

 java -jar <filename>.jar 

Структура проекта и ошибки приведены ниже:

введите описание изображения здесь

    С Kotlin 1.2 общие модули не генерируют двоичные файлы (например .class files), а только файлы метаданных. Это верно, даже если вы не используете ключевое слово expect любом месте .

    Поэтому вам нужно создать еще один модуль, который включает в себя что-то вроде этого:

     apply plugin: 'kotlin-platform-jvm' 

    Модули JVM также нуждаются в expectedBy записи в dependencies для вашего общего модуля. Кроме того, вы, вероятно, захотите получить соответствующий JS-модуль, конечно.

    Вероятно, лучше всего позволить IntelliJ создать для вас весь мультиплатформенный проект, а затем отредактировать файлы Gradle, но на этой странице перечислены шаги руководства: https://kotlinlang.org/docs/reference/multiplatform.html#setting-up- а-мультиплатформенный-проект

    Intereting Posts
    Литералы класса Kotlin с пустой левой стороной еще не поддерживаются? Вызывать компилятор Kotlin из Java-программы Отключить проверку использования пакета «kotlin» в Gradle IOException: AsyncTask Image Загрузить Kotlin Android (дескриптор Bad File) Как изменить свойство Kotlin 'this property с подсветкой' редактора кода в IntelliJ? Kotlin: цикл через отфильтрованный (возможно, пустой и не более одного элемента) список Использовать статический метод в Java как метод расширения в Котлине Использование в Generics в Multibinder Невозможно создать прослушиватель событий Spring Data в Котлине TreeWalker не работает с Kotlin / Gradle? Как передать массив целых чисел методу, ожидающему `Array <T>`? Поддержка градиента протокола Buffer для Kotlin Android не работает? Как получить ссылку на класс от KParameter в котлин? Установите маркер времени выполнения для любого вида с помощью Kotlin RxJava: onBackpressureBlock () странное поведение