binding - JRuby JSR223 接口(interface)忽略 binidngs

标签 binding jruby jsr223

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

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

或者这是一个已知问题?

最佳答案

默认情况下,局部变量不会在多次评估中保留。请参阅:http://kenai.com/projects/jruby/pages/RedBridge

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

    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"));

关于binding - JRuby JSR223 接口(interface)忽略 binidngs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10786812/

相关文章:

java - 如何在jruby中将Java Map转换为json

ruby 鞋4 : how does Sample13 work?

groovy - JMeter 断言结果

rest - 如何在jmeter中使http请求中的搜索参数为动态的

scala - 如何使用 JSR-223 在 sbt 控制台中获取 Scala 解释器?

c# - WPF 多重绑定(bind) .Net Framework 4.0

objective-c - Cocoa 绑定(bind)和检查字符串内容

c# - KeyBinding - RelayCommand 在 xaml.cs 中

c# - 每个套接字地址仅使用一种

java - 安装 java get_asdf_config_value : command not found 时出现 ASDF 错误