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

Первая программа на Kotlin

Разработчику Архитектору

Play ITЗагрузка интерактивного демо…


Первая программа на Kotlin

Kotlin - первая программа на JVM

Kotlin компилируется в байт-код JVM (как Java), поэтому структура проекта похожа на Java — Maven или Gradle, папка src/main/kotlin, точка входа fun main(). Отличие — синтаксис короче — val/var, строковые шаблоны "$i", циклы 1..5.

После этого шага логично перейти к Ktor (сервер), Compose Multiplatform (UI) или Android в разделе мобильной разработки.

Практическое задание

Выполните нижеследующее задание и на каждом шаге смотрите, что создаёт IDE — так проще связать папки на диске с тем, что видите в дереве проекта.


Установка

Установка программ обычно выглядит так (JDK и IntelliJ — отдельные мастера; сначала JVM):

Play ITЗагрузка интерактивного демо…

А теперь давайте немного попрактикуемся и посмотрим, как выглядит работа с Kotlin. Пройдитесь и выполните все действия по алгоритму, но на каждом шаге старайтесь исследовать то, что на экране, чтобы понимать.

IDEA — основная IDE для Kotlin (создана той же компанией, JetBrains). Kotlin в ней работает "из коробки" без плагинов. Полный обзор среды — в статье IntelliJ IDEA — IDE для разработки на Java (раздел Java, но та же IDE для Kotlin).

Скачайте и установите IntelliJ IDEA с официальной страницы. С 2025.3 JetBrains объединил Community и Ultimate в один продукт: базовое ядро бесплатно (достаточно для Kotlin/JVM + Maven/Gradle); подписка Ultimate — для продвинутого Spring, Ktor и работы с БД.


Запуск и создание проекта

Запустите IDEA и выберите New Project – Kotlin.

Если пункта Kotlin нет — выберите New Project → Java и потом добавьте поддержку Kotlin (но обычно она есть). Можно также выбрать Gradle вместо Maven, если вы с ним знакомы.

IDEA автоматически создаст конфигурацию JVM-проекта с поддержкой Kotlin. Вам не нужно вручную подключать котлин-компилятор.

Заполним поля:

  • Name: HelloKotlin;
  • Build system: Maven;
  • GroupId: com.test;
  • ArtifactId: HelloKotlin.

Name – имя проекта и корневой папки.

Build system – Maven управляет зависимостями и сборкой (файл pom.xml автоматически добавит Kotlin-плагин).

GroupId – уникальный идентификатор организации/автора (обратный домен).

ArtifactId – имя модуля (обычно совпадает с Name).

Это стандартная структура для JVM-проектов. Позже вы сможете добавить библиотеки через Maven.

Слева, как обычно, мы увидим структуру проекта.

HelloKotlin/
├── pom.xml
├── src/
│ ├── main/
│ │ ├── kotlin/
│ │ │ └── com/test/
│ │ │ └── Main.kt
│ │ └── resources/
│ └── test/

Разбор:

  • HelloKotlin/ — корневая папка проекта, где лежат конфигурация сборки и исходники.

  • pom.xml — файл Maven, в котором задаются зависимости, версии плагинов и команды сборки.

  • src/main/kotlin — основная директория с production-кодом на Kotlin.

  • com/test/Main.kt — файл с точкой входа fun main(), откуда стартует программа.

  • src/main/resources — ресурсы приложения — конфиги, шаблоны, статические файлы.

  • src/test — каталог для автотестов, обычно с JUnit и тестовыми фикстурами.

  • main/kotlin – исходники.

  • main/resources – ресурсы (файлы конфигурации, картинки).

  • test – для тестов (JUnit и т.д.).

Kotlin-файлы лежат в папке kotlin, а не java. IDEA сама создала пакет com.test.

Справа – код. Будет открыт Main.kt:

package com.test
fun main() {
val name = "Kotlin"
println("Hello, " + name + "!")
for (i in 1..5) {
println("i = $i")
}
}

Разбор:

  • package com.test задаёт пространство имён файла, чтобы класс MainKt имел предсказуемый пакет в байткоде JVM.
  • fun main() — точка входа; JVM запускает именно эту функцию при старте приложения.
  • val name = "Kotlin" объявляет неизменяемую переменную (val), которую нельзя переназначить позже.
  • println("Hello, " + name + "!") демонстрирует конкатенацию строк через + и вывод в стандартный поток консоли.
  • for (i in 1..5) использует диапазон 1..5, который включает обе границы и итерирует значения 1,2,3,4,5.
  • println("i = $i") показывает строковый шаблон Kotlin: $i подставляет текущее значение счётчика без ручной конкатенации.

В Kotlin fun main() — единственная обязательная функция.


Сборка проекта и запуск

Попробуйте собрать проект – ПКМ – Build.

IDEA вызовет Maven: mvn compile, а скомпилированные .class файлы попадут в папку target/.

Сборка проверяет синтаксис и генерирует байт-код JVM. Kotlin-код транслируется в Java-байткод.

Попробуйте запустить проект через панель инструментов (кнопка Run ▶ рядом с main) или ПКМ по Main.ktRun 'MainKt'.

После запуска вывод появится в окне Run внизу IDE (ожидаемый результат: Hello, Kotlin! и строки i = 1i = 5). Интерактивный пример — в блоке <ExternalPlayEmbed example="lab/first-program-play" title="Первая программа" minHeight={420} /> в начале страницы.

Интерфейс немного отличается от NetBeans, однако большинство знакомых мне разработчиков предпочитают работать именно в IDEA.

Первый запуск создаст конфигурацию запуска (Run Configuration). IDEA автоматически находит fun main() и запускает JVM с вашим классом. Вывод пойдёт в окно Run.

Нажмите Ctrl+Shift+A (или Cmd+Shift+A на Mac) → введите Show Kotlin Bytecode — увидите, во что превратился ваш код. Это полезно для понимания, как Kotlin работает под капотом.


Частые ошибки

СимптомПричина
Unresolved referenceGradle не синхронизирован — Reload Project
main not foundФайл не Main.kt или нет fun main()
JDK mismatchВ Project Structure выбран JDK 17+
Play не запускаетсяЗапускаете не MainKt, а другой класс

Что попробовать

  1. В IDEA: Show Kotlin Bytecode для main (уже в тексте выше).
  2. readln() — спросите имя в консоли.
  3. Сервер: Ktor · UI: Compose.

Частые ошибки

СимптомПричина
Unresolved referenceGradle не синхронизирован — Reload Project
main not foundФайл не Main.kt или нет fun main()
JDK mismatchВ Project Structure выбран JDK 17+
Play не запускаетсяЗапускаете не MainKt, а другой класс

Что попробовать

  1. В IDEA: Show Kotlin Bytecode для main (уже в тексте выше).
  2. readln() — спросите имя в консоли.
  3. Сервер: Ktor · UI: Compose.

Дальше


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Первые шаги (маршрут подборки) — Первая программа на Node.js, Первая программа на Ruby, Первая программа на TypeScript, Первая программа на Rust, Первая программа на C++, Первая программа на Swift.