7

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

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

4

4 回答 4

7

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

于 2013-06-02T14:36:36.287 回答
3

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

于 2012-06-29T00:27:40.950 回答
0

为了能够运行(如何使用 scala 作为脚本语言设置 jsr223 脚本)中提到的 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();
  }
}
于 2013-10-22T08:45:58.390 回答
0

这是一个可靠的ScriptingEngine 实现

于 2014-04-23T21:41:19.333 回答