Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.demo
- import java.io.File
- import kotlin.script.experimental.annotations.KotlinScript
- import kotlin.script.experimental.api.EvaluationResult
- import kotlin.script.experimental.api.ResultWithDiagnostics
- import kotlin.script.experimental.host.toScriptSource
- import kotlin.script.experimental.jvm.dependenciesFromCurrentContext
- import kotlin.script.experimental.jvm.jvm
- import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost
- import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate
- @KotlinScript(fileExtension = "script.kt")
- abstract class SimpleScript
- val compilationConfiguration = createJvmCompilationConfigurationFromTemplate<SimpleScript> {
- jvm {
- dependenciesFromCurrentContext(
- wholeClasspath = true
- )
- }
- }
- fun BasicJvmScriptingHost.evalScript(script: String): ResultWithDiagnostics<EvaluationResult> {
- return eval(script.toScriptSource(), compilationConfiguration, null)
- }
- fun main() {
- println("Executing script...")
- val host = BasicJvmScriptingHost()
- val result = host.evalScript("""
- println("hello World")
- """.trimIndent())
- result.reports.forEach { report ->
- println("[${report.severity}] ${report.message}" + (report.exception?.let { ": $it" } ?: ""))
- }
- println("Executed script")
- }
Add Comment
Please, Sign In to add comment