Kotlin: Configuração do Ambiente Kotlin e Estruturação de…

Última atualização: 2026-08-26

Do JDK ao Gradle, do REPL kotlinc ao IntelliJ IDEA — configure seu ambiente de desenvolvimento Kotlin em 5 minutos e faça o projeto OrderProcessor da Alice funcionar.

1. O que Você Aprenderá


2. A História Real de um Iniciante

(1) Problema: Configuração de Ambiente Parece um Labirinto

Alice é uma nova desenvolvedora na equipe. Tarefa do primeiro dia: configurar o ambiente de desenvolvimento do OrderProcessor. Ela gastou 3 horas lutando com versões do JDK, configuração do Gradle e plugins da IDE — sem executar um único Hello World.

(2) Fluxo de Configuração Padronizado

BASH
# Passo 1: Instalar JDK 17 (LTS)
# Passo 2: Instalar IntelliJ IDEA
# Passo 3: Criar projeto Gradle com Kotlin DSL
# Passo 4: Executar Hello World em 5 minutos

Seguindo um fluxo padronizado, Alice completou a configuração do ambiente e executou seu primeiro programa em 5 minutos.


3. Instalação e Configuração do JDK

(1) Seleção de Versão do JDK

Versão Tipo Recomendação Observações
JDK 17 LTS ⭐⭐⭐ Suporte de longo prazo, mínimo para Spring Boot 3.x
JDK 21 LTS ⭐⭐⭐ LTS mais recente, suporte a virtual threads
JDK 8 Legado Manutenção de projetos legados, não para novos projetos
JDK 11 LTS antigo ⭐⭐ Versão de transição; novos projetos devem usar 17+

(2) Instalação e Variáveis de Ambiente

BASH
# macOS (Homebrew)
brew install openjdk@17

# Ubuntu/Debian
sudo apt install openjdk-17-jdk

# Windows - baixe de adoptium.net
# Depois configure as variáveis de ambiente
BASH
# Verificar instalação
java -version
# openjdk version "17.0.x" ...

# Configurar JAVA_HOME (adicione ao ~/.bashrc ou ~/.zshrc)
export JAVA_HOME=$(/usr/libexec/java_home -v 17)  # macOS
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk     # Linux
100%
flowchart TD
    A[Baixar JDK 17] --> B[Instalar JDK]
    B --> C[Configurar JAVA_HOME]
    C --> D[Adicionar ao PATH]
    D --> E{java -version OK?}
    E -->|Sim| F[Prosseguir para IDE]
    E -->|Não| G[Verificar configuração PATH]
    G --> C

4. Instalação do IntelliJ IDEA

(1) Seleção de Versão

Versão Preço Suporte Kotlin Melhor Para
IDEA Ultimate Pago Completo (Spring/KMP/Compose) Desenvolvedores corporativos
IDEA Community Gratuito Suporte básico Kotlin Aprendizes individuais
Fleet Preview IDE de nova geração Early adopters

(2) Verificação do Plugin Kotlin

TEXT 📖 Somente leitura
IntelliJ IDEA → Settings → Plugins → Installed
  ✅ Kotlin (incluso desde 2020.x)
  ✅ Gradle (incluso)
💡 Dica: IntelliJ IDEA 2020.x e posterior já vêm com o plugin Kotlin integrado — não é necessária instalação manual.


5. Configuração de Projeto com Gradle Kotlin DSL

(1) Estrutura do Projeto

TEXT 📖 Somente leitura
order-processor/
├── build.gradle.kts        # Configuração de build (Kotlin DSL)
├── settings.gradle.kts     # Configurações do projeto
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── src/
│   ├── main/
│   │   └── kotlin/
│   │       └── com/order/
│   │           └── Main.kt
│   └── test/
│       └── kotlin/
│           └── com/order/
│               └── MainTest.kt
└── gradlew / gradlew.bat   # Scripts wrapper do Gradle

(2) build.gradle.kts

KOTLIN
// build.gradle.kts
plugins {
    kotlin("jvm") version "1.9.22"
    application
}

group = "com.order"
version = "1.0.0"

repositories {
    mavenCentral()
}

dependencies {
    implementation(kotlin("stdlib"))
    testImplementation(kotlin("test"))
    testImplementation("org.junit.jupiter:junit-jupiter:5.10.1")
}

tasks.test {
    useJUnitPlatform()
}

application {
    mainClass.set("com.order.MainKt")
}

kotlin {
    jvmToolchain(17)
}

(3) settings.gradle.kts

KOTLIN
// settings.gradle.kts
rootProject.name = "order-processor"

6. Seu Primeiro Programa Kotlin

(1) Escrever Main.kt

KOTLIN
// src/main/kotlin/com/order/Main.kt

fun main() {
    println("Hello, OrderProcessor!")

    val orderCount = 1_500
    val dailyRevenue = 89_500.50

    // Template de string com expressão
    println("Estatísticas de hoje: $orderCount pedidos, \$$dailyRevenue USD de receita")
}

(2) Comparação de Métodos de Execução

Método Comando Caso de Uso
Gradle ./gradlew run Padrão para projetos de produção
IDE Clicar no triângulo verde Desenvolvimento diário e depuração
kotlinc kotlinc ... Empacotamento via CLI
REPL kotlinc interativo Experimentação rápida

(3) Saída Esperada

TEXT 📖 Somente leitura
Hello, OrderProcessor!
Estatísticas de hoje: 1500 pedidos, $89500.50 USD de receita

7. Playground Interativo REPL

O Kotlin inclui um REPL (Read-Eval-Print Loop) integrado, perfeito para testar rapidamente trechos de código.

BASH
$ kotlinc
Welcome to Kotlin version 1.9.22
Type :help for help, :quit for quit
>>> val orderTotal = 299.99
>>> println("Total do pedido: \$$orderTotal USD")
Total do pedido: $299.99 USD
>>> "ORD-${1001}".also { println(it) }
ORD-1001
>>> :quit

(1) Comandos Rápidos do REPL

Comando Função
:help Exibir ajuda
:quit Sair do REPL
:history Ver histórico de entrada
:dump Ver classes definidas

8. Exemplo Completo: Bootstrap do OrderProcessor da Alice

KOTLIN
// ============================================
// OrderProcessor - Bootstrap do Projeto
// Funcionalidade: Inicializar projeto com modelos de domínio básicos
// ============================================

// Modelo de domínio
data class Order(val id: String, val total: Double, val status: String)

// Lógica de negócio
fun calculateTax(order: Order, rate: Double = 0.08): Double {
    return order.total * rate
}

fun formatReceipt(order: Order, tax: Double): String {
    val grandTotal = order.total + tax
    return """
        |========================================
        |  Recibo do Pedido
        |========================================
        |  ID Pedido  : ${order.id}
        |  Subtotal   : $${order.total} USD
        |  Imposto (8%): $$tax USD
        |  Total Geral : $$grandTotal USD
        |  Status     : ${order.status}
        |========================================
    """.trimMargin()
}

fun main() {
    val order = Order("ORD-001", 299.99, "CONFIRMED")
    val tax = calculateTax(order)
    val receipt = formatReceipt(order, tax)
    println(receipt)

    // Processar múltiplos pedidos
    val orders = listOf(
        Order("ORD-002", 1_500.00, "PROCESSING"),
        Order("ORD-003", 45.50, "SHIPPED"),
        Order("ORD-004", 8_900.00, "CONFIRMED")
    )

    val totalRevenue = orders.sumOf { it.total }
    println("\nReceita total: \$$totalRevenue USD em ${orders.size} pedidos")
}

Saída:

TEXT 📖 Somente leitura
========================================
  Recibo do Pedido
========================================
  ID Pedido  : ORD-001
  Subtotal   : $299.99 USD
  Imposto (8%): $23.999200000000002 USD
  Total Geral : $323.9892 USD
  Status     : CONFIRMED
========================================

Receita total: $10445.5 USD em 3 pedidos

❓ Perguntas Frequentes

P: Preciso usar o Gradle com Kotlin? Posso usar Maven? R: Você pode usar Maven, mas o Gradle Kotlin DSL é a recomendação oficial. A configuração de build com Kotlin DSL é ela mesma código Kotlin com segurança de tipos.

P: O Kotlin pode rodar no JDK 8? R: Sim. O Kotlin suporta JDK 8+, mas novos projetos devem usar JDK 17 LTS para melhor desempenho e suporte a recursos.

P: O IntelliJ IDEA Community é suficiente? R: Para aprendizado puro de Kotlin/JVM, sim. Mas desenvolvimento Spring Boot e KMP multiplataforma exigem a edição Ultimate.

P: E se o comando kotlinc não for encontrado? R: O compilador Kotlin vem com o IntelliJ IDEA, ou você pode instalá-lo separadamente via sdkman ou brew.

P: Qual a diferença entre Gradle Kotlin DSL e Groovy DSL? R: Kotlin DSL usa Kotlin para scripts de build, oferecendo dicas de tipos e verificação em tempo de compilação. Groovy DSL é mais flexível, mas não tem segurança de tipos. Kotlin DSL é recomendado para novos projetos.

P: E se eu receber "Main class not found" em tempo de execução? R: Verifique se o mainClass em build.gradle.kts aponta para o nome correto da classe (note o sufixo Kt: MainMainKt).


▶ Exemplo: Instalar via sdkman

BASH
curl -s "https://get.sdkman.io" | bash
sdk install kotlin
kotlinc -version

Saída:

TEXT 📖 Somente leitura
kotlinc-jvm 2.0.21 (JRE 17.0.11)

▶ Exemplo: Criar um Projeto Gradle

BASH
gradle init --type kotlin-application --dsl kotlin
./gradlew run

Saída:

TEXT 📖 Somente leitura
BUILD SUCCESSFUL

▶ Exemplo: REPL Interativo

KOTLIN
>>> val x = 10
>>> val y = 20
>>> x + y
30

Saída:

TEXT 📖 Somente leitura
30

▶ Exemplo: Compilação direta com kotlinc

BASH
# Criar arquivo fonte
echo 'fun main() {
    val name = "Kotlin"
    println("Olá do $name!")
    println("2 + 2 = ${2 + 2}")
}' > Ola.kt

# Compilar e executar
kotlinc Ola.kt -include-runtime -d Ola.jar
java -jar Ola.jar

Saída:

TEXT 📖 Somente leitura
Olá do Kotlin!
2 + 2 = 4

▶ Exemplo: Executar script Kotlin diretamente

KOTLIN
// script.main.kts
val orders = listOf(
    "ORD-001" to 299.99,
    "ORD-002" to 1500.00,
    "ORD-003" to 50.00
)

orders.forEach { (id, total) ->
    println("$id: \$$total USD")
}

val total = orders.sumOf { it.second }
println("---")
println("Total geral: \$$total USD")
BASH
kotlinc -script script.main.kts

Saída:

TEXT 📖 Somente leitura
ORD-001: $299.99 USD
ORD-002: $1500.0 USD
ORD-003: $50.0 USD
---
Total geral: $1849.99 USD

▶ Exemplo: REPL multilinha

KOTLIN
>>> data class Order(val id: String, val total: Double)
>>> val orders = listOf(
...     Order("A", 10.0),
...     Order("B", 20.0),
...     Order("C", 30.0)
... )
>>> orders.sumOf { it.total }
60.0
>>> orders.filter { it.total > 15.0 }.map { it.id }
[B, C]

Saída:

TEXT 📖 Somente leitura
60.0
[B, C]

▶ Exemplo: Verificar instalação

KOTLIN
// verificar.kt - execute para validar a instalação
fun main() {
    val jdk = System.getProperty("java.version")
    val os = System.getProperty("os.name")
    val user = System.getProperty("user.name")

    println("=== Ambiente Kotlin ===")
    println("JDK: $jdk")
    println("OS: $os")
    println("Usuário: $user")
    println("Kotlin: ${KotlinVersion.CURRENT}")
}

Saída:

TEXT 📖 Somente leitura
=== Ambiente Kotlin ===
JDK: 17.0.11
OS: Windows 11
Usuário: alice
Kotlin: 1.9.22

📖 Resumo


📝 Exercícios

  1. Iniciante (⭐) : Instale JDK 17 + IntelliJ IDEA, crie um projeto Gradle Kotlin DSL e execute Hello World. Dica: consulte a Seção 6
  2. Intermediário (⭐⭐) : Modifique o build.gradle.kts para adicionar a dependência kotlinx.coroutines. Dica: implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
  3. Desafio (⭐⭐⭐) : Escreva um script com kotlinc que leia argumentos de linha de comando e imprima um resumo de pedido. Dica: args fornece argumentos CLI, kotlinc -script executa

← Anterior | Próximo →

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%