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ă, darjava -jarse oprește cuNoClassDefFoundError: kotlin/jvm/internal/Intrinsics, pentru că lipsește biblioteca standard. - Lipsa unui JDK:
kotlincare nevoie de Java instalat (JAVA_HOMEsetat saujavaînPATH). - 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.