2012-06-26 11 views
6

Scala'yı bir betik dili olarak kullanmaya çalışıyorum. Bu, java'dan çağrılacak ve bundan sonra komut çalıştırması sonucunda bazı nesneler almam gerekiyor. İhtiyacım olanı yapabildiğim, ancak istediğim şeyi yapabilecek iyi bir yorumcu bulmaya çalıştım. Scala için JSR-223'ün bir uygulaması var mı? Ya da benim problemimi nasıl çözeceğimi bilen biri olabilir. Teşekkürler.JSR-223 Scala Komut Dosyası Altyapısı

+1

bunu gördün mü geçerli: http://stackoverflow.com/questions/5654888/how-do-i-set-up -jsr223-scripting-ile-scala-scripting-dil – axel22

cevap

0

Codesnippet aşağıdaki değişiklikleri yapmak için gerekli (How do I set up jsr223 scripting with scala as scripting language) belirtilen çalıştırmak edebilmek. Ben Scala 2.11.0-M4 kullanılan

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(); 
    } 
}