JSR-223 Scala脚本引擎

时间:2012-06-26 14:49:12

标签: java scala

我正在尝试使用Scala作为脚本语言,将从java调用,之后我需要通过脚本执行来获取一些对象。

我试图找到一个好的解释器,可以做我需要的但是不成功的。存在是Scala的JSR-223的实现吗?或者可能有人知道如何解决我的问题。感谢。

4 个答案:

答案 0 :(得分:7)

scala中的官方支持从版本2.11开始,如此封闭的票证中所示:https://issues.scala-lang.org/browse/SI-874

答案 1 :(得分:3)

此库:http://code.google.com/p/scalascriptengine/ 可能有助于解决您的问题。

答案 2 :(得分:0)

为了能够运行(How do I set up jsr223 scripting with scala as scripting language)中提到的Codesnippet,我需要进行以下更改。 我用过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();
  }
}

答案 3 :(得分:0)

这是一个稳固的ScriptingEngine implementation