GraalVm Polyglot应用程序-是否可以在运行时从Java评估kotlin脚本?

问题描述

GraalVM polyglot API允许在基于JVM的主机应用程序中嵌入和运行来自来宾语言的代码。我正在使用native-image并另外安装了python,所以我可以通过我的Java应用程序通过

成功评估jspython脚本
context.eval("js","print('Hello JavaScript!');")
context.eval("python","print('Hello Python!');")

效果很好。但是,如果我尝试以类似方式评估kotlin脚本-

context.eval("kotlin","data class Company(val name: String,val year: Long);")

然后失败

Exception in thread "main" java.lang.IllegalArgumentException: A language with id 'kotlin' is not installed. Installed languages are: [js,llvm,python].
        at com.oracle.truffle.polyglot.polyglotEngineException.illegalArgument(polyglotEngineException.java:128)
        at com.oracle.truffle.polyglot.polyglotEngineImpl.requirePublicLanguage(polyglotEngineImpl.java:867)
        at com.oracle.truffle.polyglot.polyglotContextImpl.requirePublicLanguage(polyglotContextImpl.java:899)
        at com.oracle.truffle.polyglot.polyglotContextImpl.eval(polyglotContextImpl.java:868)
        at org.graalvm.polyglot.Context.eval(Context.java:345)
        at org.graalvm.polyglot.Context.eval(Context.java:371)

我了解它指出仅[js,python]可用,但是我想知道是否可以添加任何内容来评估kotlin脚本,是否也是如此?或者,也许还有另一种方法可以在运行时通过Java应用程序评估动态kotlin脚本?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)