从Java访问JRuby脚本顶级环境的变量
发布时间:2020-12-14 16:32:18 所属栏目:Java 来源:网络整理
导读:j ruby 1.7.23(1.9.3p551)2015-11-24 Java HotSpot(TM)64位服务器虚拟机上的f496dd5 1.7.0_79-b15 jit [Windows 7-amd64] 我在我的脚本容器中运行一个scriptlet,如下所示: (RubyObject) ro = (RubyObject)container.runScriptlet(org.jruby.embed.PathType.
j
ruby 1.7.23(1.9.3p551)2015-11-24
Java HotSpot(TM)64位服务器虚拟机上的f496dd5 1.7.0_79-b15 jit [Windows 7-amd64]
我在我的脚本容器中运行一个scriptlet,如下所示: (RubyObject) ro = (RubyObject)container.runScriptlet(org.jruby.embed.PathType.RELATIVE,"example.rb"); 其中容器类型为ScriptingContainer. “局部变量行为”设置为“transient”. 文件example.rb包含以下行: foo='xxx' $bar='yyy' 'zzz' 我可以从Java端检索值’zzz’,因为它是从runScriptlet显式返回的.我也可以检索$bar的值 container.get("$bar") 有没有办法检索foo的价值? container.get(“foo”)返回空指针. 我也尝试将局部变量行为更改为“persistent”,但结果仍然相同. 解决方法
我想你已经使用了这个ScriptingContainer(LocalVariableBehavior.PERSISTENT),但是这个必要意味着你已经可以访问这个scriptContainer里面的大部分内容了.可能我们可以修改你的代码并尝试使用parse.请参阅
example 4.它可能会启发你.希望这可以帮助.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |