or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

classpath-utilities.mddependency-resolution.mdindex.mdjsr223-engines.mdscript-templates.md
tile.json

tessl/maven-org-jetbrains-kotlin--kotlin-script-util

Kotlin scripting support utilities library that provides infrastructure for implementing Kotlin script execution, including JSR-223 script engine implementations, dependency resolution, and utilities for classpath management in scripting contexts

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/org.jetbrains.kotlin/kotlin-script-util@1.8.x

To install, run

npx @tessl/cli install tessl/maven-org-jetbrains-kotlin--kotlin-script-util@1.8.0

index.mddocs/

Kotlin Script Util

Kotlin Script Util provides essential utilities and infrastructure for Kotlin scripting functionality, including JSR-223 compliant script engines that allow Kotlin scripts to be executed within Java applications, dependency resolvers for managing script dependencies at runtime, and classpath management utilities for dynamic script compilation.

Package Information

  • Package Name: kotlin-script-util
  • Package Type: maven
  • Language: Kotlin
  • Maven Coordinates: org.jetbrains.kotlin:kotlin-script-util:1.8.22
  • Installation: Add to your Maven/Gradle dependencies

Core Imports

// JSR-223 Script Engine Factories
import org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngineFactory
import org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmDaemonLocalEvalScriptEngineFactory

// Script Templates
import org.jetbrains.kotlin.script.jsr223.KotlinStandardJsr223ScriptTemplate
import org.jetbrains.kotlin.script.util.templates.StandardArgsScriptTemplateWithLocalResolving

// Dependency Annotations (deprecated)
import org.jetbrains.kotlin.script.util.DependsOn
import org.jetbrains.kotlin.script.util.Repository

Basic Usage

import org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngineFactory
import javax.script.ScriptEngineManager

// Create and use a JSR-223 Kotlin script engine
val factory = KotlinJsr223JvmLocalScriptEngineFactory()
val engine = factory.scriptEngine

// Execute Kotlin code
val result = engine.eval("2 + 2")
println(result) // 4

// Use bindings to pass data to scripts
val bindings = engine.createBindings()
bindings["x"] = 10
bindings["y"] = 20
val sum = engine.eval("x + y", bindings)
println(sum) // 30

Architecture

The library is organized into several key components:

  • JSR-223 Script Engines: Two implementations for executing Kotlin scripts - local compilation and daemon-based compilation
  • Script Templates: Predefined templates for common scripting scenarios with JSR-223 integration
  • Dependency Resolution: Deprecated utilities for resolving script dependencies (redirects to newer kotlin-scripting libraries)
  • Classpath Management: Deprecated utilities for managing classpaths during script compilation

Capabilities

JSR-223 Script Engine Support

Core script engine implementations and factories for executing Kotlin code through the standard Java scripting API.

class KotlinJsr223JvmLocalScriptEngineFactory : KotlinJsr223JvmScriptEngineFactoryBase {
    fun getScriptEngine(): ScriptEngine
}

class KotlinJsr223JvmDaemonLocalEvalScriptEngineFactory : KotlinJsr223JvmScriptEngineFactoryBase {
    fun getScriptEngine(): ScriptEngine
}

JSR-223 Script Engines

Script Templates

Predefined templates that provide structured environments for script execution with different parameter passing mechanisms.

abstract class KotlinStandardJsr223ScriptTemplate(val jsr223Bindings: Bindings) : ScriptTemplateWithBindings {
    fun eval(script: String, newBindings: Bindings): Any?
    fun eval(script: String): Any?
    fun createBindings(): Bindings
}

Script Templates

Classpath Utilities (Deprecated)

Legacy utilities for classpath management during script compilation. All functions redirect to newer implementations in kotlin-scripting-* libraries.

fun classpathFromClassloader(classLoader: ClassLoader): List<File>?
fun scriptCompilationClasspathFromContext(
    vararg keyNames: String,
    classLoader: ClassLoader = Thread.currentThread().contextClassLoader,
    wholeClasspath: Boolean = false
): List<File>

Classpath Utilities

Dependency Resolution (Deprecated)

Legacy dependency resolution system for scripts with annotation-based dependency declarations.

class KotlinAnnotatedScriptDependenciesResolver(
    val baseClassPath: List<File>, 
    resolvers: Iterable<Resolver>
) : ScriptDependenciesResolver

@Target(AnnotationTarget.FILE)
@Repeatable
annotation class DependsOn(
    val value: String = "", 
    val groupId: String = "", 
    val artifactId: String = "", 
    val version: String = ""
)

Dependency Resolution

Types

// From javax.script package
interface ScriptEngine {
    fun eval(script: String): Any?
    fun eval(script: String, context: ScriptContext): Any?
    fun createBindings(): Bindings
}

interface Bindings : MutableMap<String, Any?>

interface ScriptContext {
    fun getBindings(scope: Int): Bindings
    fun setBindings(bindings: Bindings, scope: Int)
}