Перейти к основному содержимому

fun main() — точка входа Kotlin

Разработчику

На JVM точка входа — всё тот же public static void main(String[] args). Kotlin позволяет писать его короче: fun main() или fun main(args: Array<String>).

См. также: Первая программа · Java — main в соседнем разделе · Python — аналог.


Минимальная программа

fun main() {
println("Hello, Kotlin")
}

Компилятор генерирует класс Kt (или имя файла) со static main для JVM. Запуск через IntelliJ, kotlin MainKt или Gradle application plugin.

С аргументами:

fun main(args: Array<String>) {
args.forEach { println(it) }
}

main внутри класса

class App {
companion object {
@JvmStatic
fun main(args: Array<String>) {
println("Старт")
}
}
}

@JvmStatic нужен, чтобы JVM увидела статический main в companion — иначе вызов идёт через объект companion.


Import и main

Как в Java, import com.example.Calculator не вызывает main. Другой модуль использует Calculator.add(1, 2) без запуска демо.

object Calculator {
fun add(a: Int, b: Int) = a + b
}

fun main() {
println(Calculator.add(5, 3))
}
Действиеmain
Запуск файла / Gradle runВыполняется
import функций из другого модуляНе выполняется

Android и Ktor

  • Android — точка входа в Activity / Application, не fun main() в приложении на устройстве.
  • Ktor / консольfun main() поднимает embedded-сервер или CLI.

Сравнение с Python и Java

PythonJavaKotlin
Точка входаif __name__ == "__main__":public static void mainfun main()
Import запускает mainНет (если код в блоке)НетНет

Дальше по разделу

ТемаСтатья
IntelliJ, Maven2 — Первая программа
Java interop1 — Основы
Ktorстатьи раздела по backend

См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").