moj*_*b23 5 java scripting kotlin
我想用Java脚本运行kotlin代码作为脚本,Java脚本API类似于javascript:
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')");
}
}
Run Code Online (Sandbox Code Playgroud)
或者像这样的类似API.
是的,可以从Kotlin 1.1开始:http://kotlinlang.org/docs/reference/whatsnew11.html#javaxscript-support
此配置将Kotlin脚本引擎添加到我的Kotlin 1.2项目中:
META-INF/services/javax.script.ScriptEngineFactory包含https://github.com/JetBrains/kotlin/blob/master/libraries/examples/kotlin-jsr223-local-example/src/main/resources/META-INF/services/javax.script内容的文件. ScriptEngineFactory所
2个图书馆:
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-script-runtime</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-script-util</artifactId>
<version>${kotlin.version}</version>
</dependency>
更新:
从Kotlin 1.2.20开始kotlin-script-util并不kotlin-compiler明确依赖(参见https://youtrack.jetbrains.com/issue/KT-17561).因此应该提供另外一个模块(从示例项目中的构建文件开始):
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-compiler-embeddable</artifactId>
<version>${kotlin.version}</version>
</dependency>