首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JRuby JSR223接口忽略binidngs

JRuby JSR223接口忽略binidngs
EN

Stack Overflow用户
提问于 2012-05-28 23:09:39
回答 1查看 291关注 0票数 2

JRuby (1.6.7.2)框架的JSR223 javax.script接口似乎忽略了ScriptContext绑定中的绑定Java值。我做错了吗?下面是一个不起作用的简单示例:

代码语言:javascript
复制
private void run() throws ScriptException {
    ScriptEngine engine = new JRubyEngineFactory().getScriptEngine();
    LittleClass l = new LittleClass();
    engine.put("l", l);
    engine.eval("l.x;");
}

public class LittleClass {
    public int x;
    public void add() {
        x = x + 1;
    }
}

或者这是一个已知的问题?

EN

回答 1

Stack Overflow用户

发布于 2013-03-11 23:36:09

默认情况下,局部变量不会在多次求值中存活。请参阅:http://kenai.com/projects/jruby/pages/RedBridge

要更改此行为,请设置org.jruby.embed.localvariable.behavior属性:

代码语言:javascript
复制
    System.setProperty("org.jruby.embed.localvariable.behavior", "persistent");

    ScriptEngine engine = new JRubyEngineFactory().getScriptEngine();
    LittleClass l = new LittleClass();
    engine.put("l", l);
    engine.eval("l.add");
    System.out.println(engine.eval("l.x"));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10786812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档