Java >> Java-zelfstudie >  >> Java

Hoe kan ik Kotlin-Script (.kts) bestanden uitvoeren vanuit Kotlin/Java?

Merk op dat de ondersteuning van scriptbestanden in Kotlin nog vrij experimenteel is. Dit is een ongedocumenteerde functie die we nog aan het ontwerpen zijn. Wat vandaag werkt, kan morgen veranderen, breken of verdwijnen.

Dat gezegd hebbende, zijn er momenteel twee manieren om een ​​script aan te roepen. U kunt de opdrachtregelcompiler gebruiken:

kotlinc -script foo.kts <args>

Of u kunt het script rechtstreeks vanuit IntelliJ IDEA aanroepen door met de rechtermuisknop in de editor of in de projectweergave op een .kts-bestand te klikken en "Uitvoeren ..." te selecteren:


KtsRunner

Ik heb een eenvoudige bibliotheek gepubliceerd waarmee je scripts van reguliere Kotlin-programma's kunt uitvoeren.

https://github.com/s1monw1/KtsRunner

Voorbeeld

  1. De voorbeeldklasse

    data class ClassFromScript(val x: String)
    
  2. De .kts bestand

    import de.swirtz.ktsrunner.objectloader.ClassFromScript
    
    ClassFromScript("I was created in kts")
    
  3. De code om de klas te laden

    val scriptReader =  Files.newBufferedReader(Paths.get("path/classDeclaration.kts"))
    val loadedObj: ClassFromScript = KtsObjectLoader().load<ClassFromScript>(scriptReader)
    println(loadedObj.x) // >> I was created in kts
    

Zoals getoond, is de KtsObjectLoader class kan worden gebruikt voor het uitvoeren van een .kts script en retourneer het resultaat. Het voorbeeld toont een script dat een instantie maakt van de ClassFromScript type dat wordt geladen via KtsObjectLoader en vervolgens verwerkt in het reguliere programma.


Java-tag