Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GraalVm Polyglot应用程序-是否可以在运行时从java计算kotlin脚本?_Java_Kotlin_Graalvm - Fatal编程技术网

GraalVm Polyglot应用程序-是否可以在运行时从java计算kotlin脚本?

GraalVm Polyglot应用程序-是否可以在运行时从java计算kotlin脚本?,java,kotlin,graalvm,Java,Kotlin,Graalvm,GraalVM Polyglot API允许在基于JVM的主机应用程序中嵌入和运行来自来宾语言的代码。我正在使用native image并另外安装了python,因此我可以通过 context.eval(“js”,“print('Hello JavaScript!');”) eval(“python”,“print('Hello python!');”) 它很好用。但是,如果我尝试以类似的方式评估kotlin脚本- context.eval(“kotlin”,“数据类公司(val名称:Stri

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

context.eval(“js”,“print('Hello JavaScript!');”)
eval(“python”,“print('Hello python!');”)
它很好用。但是,如果我尝试以类似的方式评估kotlin脚本-

context.eval(“kotlin”,“数据类公司(val名称:String,val年份: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、llvm、python]
可用,但我想知道是否可以添加任何内容,以便能够以类似的方式评估
kotlin
脚本?或者可能有另一种方法可以从java应用程序在运行时评估动态kotlin脚本


谢谢。

尝试安装kotlinDear@Pierre,谢谢您的帮助!但是,我不认为这能解决问题,因为graalvm polyglot api需要在kotlin运行时实现truffle api并与polyglot api集成。简单编译器安装并不能解决这个问题,因为它不是对编译器的简单调用。