7

Scala をスクリプト言語として使用しようとしています。これは Java から呼び出され、その後、スクリプトの実行の結果としていくつかのオブジェクトを取得する必要があります。

必要なことを実行できる優れたインタープリターを見つけようとしましたが、失敗しました。Scala用のJSR-223の実装は存在しますか? または、誰かが私の問題を解決する方法を知っているかもしれません。ありがとう。

4

4 に答える 4

7

このクローズド チケットに見られるように、バージョン 2.11 で scala の公式サポートが開始されます: 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 に答える