2012-06-26 15 views
6

Estoy tratando de usar Scala como un lenguaje de script, que se llamará desde Java y después de eso necesito obtener algunos objetos como resultado de la ejecución del script.JSR-223 Scala Script Engine

Traté de encontrar un buen intérprete que pueda hacer lo que necesito pero sin éxito. ¿Existe una implementación de JSR-223 para Scala? O puede ser que alguien sepa cómo resolver mi problema. Gracias.

+1

¿vio esto: http://stackoverflow.com/questions/5654888/how-do-i-set-up -jsr223-scripting-with-scala-as-scripting-language – axel22

Respuesta

0

Para poder ejecutar el Codesnippet menciona en (How do I set up jsr223 scripting with scala as scripting language) que necesitaba para realizar los siguientes cambios. Solía ​​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(); 
    } 
} 
Cuestiones relacionadas