kotlinc în Kotlin

Bazele programului Kotlin 1.0

Compilatorul Kotlin din linia de comandă: transformă fișierele .kt într-un program care rulează pe JVM.

Sintaxă
kotlinc fisier.kt -include-runtime -d program.jar
java -jar program.jar

kotlinc -Werror fisier.kt -d out/   # avertismentele devin erori
kotlinc -version

Ce face kotlinc

kotlinc este compilatorul Kotlin pentru JVM. Primește unul sau mai multe fișiere .kt și produce clase Java (.class) sau, cu -d program.jar, o arhivă JAR. Opțiunea -include-runtime pune în JAR și biblioteca standard Kotlin, ca programul să poată fi pornit doar cu java -jar program.jar.

Opțiuni utile: -d (unde se scrie rezultatul), -include-runtime, -Werror (orice avertisment oprește compilarea; așa sunt verificate exemplele de pe acest site), -nowarn (ascunde avertismentele), -version, -script (rulează un fișier .kts fără compilare separată). Compilarea durează câteva secunde, pentru că pornește o mașină virtuală Java.

În proiecte reale nu apelezi kotlinc de mână: Gradle sau Maven îl apelează pentru tine (./gradlew build). Îl instalezi cu SDKMAN (sdk install kotlin), Homebrew (brew install kotlin) sau din arhiva de pe GitHub; ai nevoie și de un JDK.

Parametri

Parametru Descriere
-d cale Directorul sau fișierul .jar în care se scrie rezultatul.
-include-runtime Include biblioteca standard Kotlin în JAR, ca acesta să ruleze singur.
-Werror Tratează avertismentele ca erori (compilarea eșuează).
-cp cale Clase sau JAR-uri externe de care depinde codul.
-script Rulează un script Kotlin (.kts).

Exemple

Exemplul 1: Compilare și rulare

Fișierul salut.kt conține fun main() { println("Salut, Ana!") }. Primul pas creează salut.jar, al doilea îl rulează.

kotlinc salut.kt -include-runtime -d salut.jar
java -jar salut.jar

Rezultat în terminal

Salut, Ana!

Exemplul 2: Avertismente transformate în erori cu -Werror

Fișierul calcul.kt declară o variabilă pe care nu o folosește. Fără -Werror ar fi doar un avertisment; cu -Werror compilarea se oprește.

# calcul.kt:
#   fun main() {
#       val tva = 0.19
#       println("Preț: 100 lei")
#   }
kotlinc -Werror calcul.kt -d out/

Rezultat în terminal

error: warnings found and -Werror specified
calcul.kt:2:9: warning: variable 'tva' is unused.
    val tva = 0.19
        ^^^

Exemplul 3: Versiunea compilatorului

Afișează versiunea Kotlin și versiunea Java (JRE) pe care rulează compilatorul.

kotlinc -version

Rezultat în terminal

info: kotlinc-jvm 2.4.21 (JRE 27)

Greșeli frecvente

  • Uitarea lui -include-runtime: JAR-ul se creează, dar java -jar se oprește cu NoClassDefFoundError: kotlin/jvm/internal/Intrinsics, pentru că lipsește biblioteca standard.
  • Lipsa unui JDK: kotlinc are nevoie de Java instalat (JAVA_HOME setat sau java în PATH).
  • Compilarea fiecărui fișier separat când ele se folosesc între ele: dă-le pe toate în aceeași comandă (kotlinc a.kt b.kt -d app.jar) sau folosește Gradle.

Comenzi înrudite

  • fun main(): Funcția main este punctul de pornire al oricărui program Kotlin: codul din ea se execută primul.
  • package și import: package stabilește numele pachetului unui fișier; import aduce în fișier clase și funcții din alte pachete.
  • expect și actual: expect declară în codul comun ceva ce fiecare platformă (JVM, Android, iOS, JS) implementează separat cu actual.