Первая программа на 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.kt → Run 'MainKt'.
После запуска вывод появится в окне Run внизу IDE (ожидаемый результат: Hello, Kotlin! и строки i = 1 … i = 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 reference | Gradle не синхронизирован — Reload Project |
main not found | Файл не Main.kt или нет fun main() |
| JDK mismatch | В Project Structure выбран JDK 17+ |
| Play не запускается | Запускаете не MainKt, а другой класс |
Что попробовать
- В IDEA: Show Kotlin Bytecode для
main(уже в тексте выше). readln()— спросите имя в консоли.- Сервер: Ktor · UI: Compose.
Частые ошибки
| Симптом | Причина |
|---|---|
| Unresolved reference | Gradle не синхронизирован — Reload Project |
main not found | Файл не Main.kt или нет fun main() |
| JDK mismatch | В Project Structure выбран JDK 17+ |
| Play не запускается | Запускаете не MainKt, а другой класс |
Что попробовать
- В IDEA: Show Kotlin Bytecode для
main(уже в тексте выше). readln()— спросите имя в консоли.- Сервер: Ktor · UI: Compose.
Дальше
- Экосистема Kotlin
- Консольный ввод/вывод
- Ktor Server · Ktor Client · Корутины · Flow
- Jetpack Compose · Compose Multiplatform · DSL · Тестирование
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Первые шаги (маршрут подборки) — Первая программа на Node.js, Первая программа на Ruby, Первая программа на TypeScript, Первая программа на Rust, Первая программа на C++, Первая программа на Swift.