JSR-223 Scala脚本引擎

7

我想将Scala作为脚本语言,从Java中调用它并获取脚本执行的一些对象结果。

我尝试寻找一个能够满足我的需求的好解释器,但是没有成功。是否存在JSR-223的Scala实现?或者有人知道如何解决我的问题。谢谢。


1
你看到这个了吗:https://dev59.com/v1bTa4cB1Zd3GeqP8THT - axel22
4个回答

7

3

0

1
链接目前显示404错误。 - Renato

0
为了能够运行(如何使用Scala作为脚本语言设置jsr223脚本)中提到的代码片段,我需要进行以下更改。 我使用的是Scala 2.11.0-M4版本。
public static void main(String args[]){
  ScriptEngine engine = new ScriptEngineManager().getEngineByName("scala");

  // Set up Scriptenvironment to use the Java classpath
  List nil = Nil$.MODULE$;
  $colon$colon vals = $colon$colon$.MODULE$.apply((String) "true", nil);
  ((IMain)engine).settings().usejavacp().tryToSet(vals);ScriptContext.ENGINE_SCOPE);

  engine.getContext().setAttribute("labelO", new Integer(4), ScriptContext.ENGINE_SCOPE);
  try {
    engine.eval("val label = labelO.asInstanceOf[Integer]\n"+
                "println(\"ergebnis: \" + (2 + label ))");
  } catch (ScriptException ex) {
    ex.printStackTrace();
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接