ToiletaPaper 142

Kotlin-Skripte

Problem

Java und Kotlin sind schöne Sprachen für die Softwareentwicklung, aber wenn man nur ein kleines Script braucht, ist man bisher auf andere Sprachen wie Python oder JavaScript ausgewichen. An den Sprachen ist per se nichts Schlechtes, aber die Syntax und Standardbibliotheken sind anders als bei JVM-Sprachen und ich muss diese dann googeln.

Lösung

In Kotlin kann man Skripte schreiben. Dafür braucht man keine Gradle-Buildskripte, keine package.json o. ä., man kann in der Skriptdatei direkt die Abhängigkeiten angeben und dann einfach Kotlin-Code schreiben. Die Datei muss auf .main.kts enden, Intellij IDEA unterstützt diese nativ. Unten ist ein kleines Skript, das die bekannte Petstore-API abfragt. Zum Ausführen muss man Java und den Kotlin-Compiler installieren. Unter Windows lädt man diesen von Github herunter (kotlin-compiler-X.X.XX.zip) und fügt dann den bin-Ordner dem PATH hinzu. Unter Linux kann man z. B. snap nutzen `sudo snap install --classic kotlin`, unter Mac z. B. homebrew `brew install kotlin`.

Beispiel

petstore.main.kts
@file:DependsOn("io.ktor:ktor-client-okhttp:+")
@file:DependsOn("io.ktor:ktor-client-gson:+")
import io.ktor.client.*
import io.ktor.client.features.json.*
import io.ktor.client.request.*
import kotlinx.coroutines.runBlocking

data class InventoryResponse(val sold: Int, val pending: Int, val available: Int)
val url = "https://petstore.swagger.io/v2/store/inventory"
HttpClient { install(JsonFeature) }.use { client ->
    runBlocking {
        val (sold, pending, available) = client.get<InventoryResponse>(url)
        println("Result: Sold $sold, pending $pending, available $available")
    }
}
Ausführen in cmd
C:\Users\findu\Development>kotlin petstore.main.kts
# Warnings about reflective access if Java version > 1.8
Result: Sold 4, pending 4, available 666
ToiletPaper 142 Visual

Weiterführende Aspekte

  • Kotlin-Skripte sind schon recht stabil, ein paar Bugs gibt es dennoch: KT-28475, KT-43520 etc., aber diese werden laufend gefixt.
  • Code: https://jamb.it/kotlinscript
  • Ich kann jedem Java-Entwickler Kotlin empfehlen, weil es eine schöne Sprache ist.

---

Autor: Sebastian Lehrbaum / Software Architect / Business Division Automotive

Cookie-Einstellungen

Diese Website verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und Zugriffe auf die Website zu analysieren. Zudem werden Informationen zu Ihrer Verwendung der Website an Partner für soziale Medien, Werbung und Analysen weitergegeben. Die Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. Dort können Sie nachträglich auch Ihre Cookie-Einstellungen ändern.

contact icon

Kontakt aufnehmen