Kotlin - Настройка проекта IntelliJ

Я хочу начать новый проект с Kotlin для JVM с помощью IntelliJ IDE, но я не могу получить конфигурацию для его работы. Я пытался следовать этому руководству, и после этого не работал (опция "Run" _DefaultPackage "никогда не появлялась), я начал пытаться понять, что должно было быть сделано без успеха. Что произошло до сих пор (неоднократно):

  • Я создал новый проект, выбранный "Kotlin - JVM" в качестве типа проекта.
  • Я нажал кнопку "Создать..." для Runtime Kotlin на второй странице и выбрал "Копировать в: lib".
  • Я нажимаю "Готово", и созданный проект имеет один модуль с тем же именем, что и мой проект. Отсутствует исходный файл по умолчанию или любая конфигурация.
  • Я создаю файл Kotlin с именем "app.kt" (я также пробовал другие имена, например "Main.kt"), и поместил следующий исходный код в:
fun main(args: Array<String>){
    println("Hello world!")
}
  • Я щелкнул правой кнопкой мыши по редактору кода и файлу в левой панели, чтобы найти параметр "Запустить" _DefaultPackage ", упомянутый в учебнике, но не смог найти его в любом из них.
  • Я создаю новую конфигурацию Kotlin, которая просит, чтобы я включил "Основной класс". Увидев это, я меняю код на:
public class Main {
    fun main(args: Array<String>) {
        println("Hello world!")
    }
}
  • Я редактирую свою конфигурацию и устанавливаю основной класс в "Main", а затем запускаю конфигурацию. Ошибка этой ошибки: "Ошибка при запуске: функция" main "не найдена в классе" Main ".

Что мне не хватает?

Ответ 1

Вы не можете собрать основной проект, потому что основной метод не является статичным. Поэтому вы должны определить его в сопутствующем объекте.

class HelloKotlin {

        companion object {
            @JvmStatic fun main(args: Array<String>) {
                println("Kotlin main is running here!")
            }
        }
    }

Ответ 2

Полный ответ на то, как идентифицировать класс runnable для функции main() верхнего уровня или использовать метод main() в классе, задокументирован в этом другом ответе "Переполнение стека": как запустить классы Kotlin

Это охватывает работу в командной строке, внутри Intellij (как задается ваш вопрос), Gradle и т.д.

Ответ 3

Откройте файл, который содержит основную функцию, и перейдите к menu-> "Редактировать конфигурации", затем выберите "+" в диалоговом окне "Приложение" в качестве типа, который задает имя так, как вы хотите, и установите основной класс, нажав на рядом с верхним полем ввода (тот, который помечен как "основной класс").

Выберите "use class path of module" и выберите ваш модуль из раскрывающегося списка. Нажмите "применить" и закройте диалоговое окно. Теперь вы можете работать со сдвигом + F10, отлаживать со сдвигом + F9 и редактировать настройки запуска со сдвигом + alt + F10. Вы также можете запускать или отлаживать две кнопки в верхней правой части основного экрана.

Ответ 4

Я переместил файл main.kt внутри папки src проекта и решил проблему, то есть IntelliJ смог найти класс MainKt

Ответ 5

Мне пришлось обновить мой плагин Kotlin (который вышел совсем недавно), а затем появились параметры правой кнопки мыши для запуска. Я не мог отследить проблему ни к чему еще, поэтому я думаю, что это так.

Если у вас возникла эта проблема, щелкните правой кнопкой мыши файл исходного кода, где находится ваша основная функция, и нажмите "Запустить, создать или отладить".

Обратите внимание, что основная функция должна иметь имя "main" (без ограничений) и аргумент "Array". Это меня поймало несколько раз, когда я делал новые проекты, пытаясь заставить его работать.

Ответ 6

Указанный "Основной класс:" → com.mypackage.MainKt

И создайте файл Kotlin "Main" в пакете "com.mypackage"

package com.mypackage

fun main(args: Array<String>) {
    println("Hello Kotlin!")
}