2016-07-31 12 views
3

I Kotlin Code als Skript von Java mit Java Scripting API ähnlich wie dies für Javascript ausgeführt werden soll:Kann ich Kotlin als Skript mit Java Scripting API

import javax.script.*; 
public class EvalScript { 
    public static void main(String[] args) throws Exception { 
     // create a script engine manager 
     ScriptEngineManager factory = new ScriptEngineManager(); 
     // create a JavaScript engine 
     ScriptEngine engine = factory.getEngineByName("JavaScript"); 
     // evaluate JavaScript code from String 
     engine.eval("print('Hello, World')"); 
    } 
} 

oder mit ähnlichen APIs wie diese.

+0

Ich bin sicher, Sie * könnten *, aber warum? Der Punkt von Kotlin ist, dass es zu JVM-Bytecode kompiliert. – chrylis

+0

Ich möchte es für die Last kotlin [Typ-Sichere Builder] (https://kotlinlang.org/docs/reference/type-safe-builders.html) dsl oder so etwas in Runtime verwenden. – mojtab23

Antwort

4

Ja, es ist möglich, von der Kotlin Start 1.1: http://kotlinlang.org/docs/reference/whatsnew11.html#javaxscript-support

Diese Konfiguration fügt Kotlin Skripte Motor meiner Kotlin 1.2 Projekt:

Update: von Kotlin Ab 1.2.20 kotlin-script-util hängt nicht von kotlin-compiler ausdrücklich (siehe https://youtrack.jetbrains.com/issue/KT-17561). Also ein weiteres Modul sollte zur Verfügung gestellt werden (wie der build file in example project): <dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-compiler-embeddable</artifactId> <version>${kotlin.version}</version> </dependency>

4

Kotlin-Unterstützung für die Java Scripting API ist planned, aber ab Version 1.0.3 ist noch nicht verfügbar. In der Zwischenzeit können Sie versuchen, eine vorhandene open-source implementation zu verwenden.