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

Wir verwenden Cookies, um unsere Webseite für Sie zu optimieren. Mit dem Besuch unserer Webseite erklären Sie sich damit einverstanden. // Our website is using cookies to improve your experience. By continuing to browse the site, you are agreeing to our use of cookies.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. // For more information, please refer to our privacy policy.

contact icon

Kontakt aufnehmen