gpt4 book ai didi

jruby - 从 Java 的 JRuby 脚本顶级环境访问变量

转载 作者:行者123 更新时间:2023-12-04 02:29:20 29 4
gpt4 key购买 nike

jruby 1.7.23 (1.9.3p551) 2015-11-24 f496dd5 在 Java HotSpot(TM) 64 位服务器 VM 1.7.0_79-b15 +jit [Windows 7-amd64]

我在我的脚本容器中运行一个 scriptlet,如下所示:

(RubyObject) ro = (RubyObject)container.runScriptlet(org.jruby.embed.PathType.RELATIVE,"example.rb");

哪里 container是 ScriptingContainer 类型。 “局部变量行为”设置为“ transient ”。

文件 example.rb 包含以下几行:
foo='xxx'
$bar='yyy'
'zzz'

我可以从 Java 端检索值“zzz”,因为它是从 runScriptlet 显式返回的。我还可以使用检索 $bar 的值
container.get("$bar")

有没有办法检索 foo 的值? container.get("foo")返回空指针。

我还尝试将局部变量行为更改为“持久”,但结果仍然相同。

最佳答案

我认为你已经使用了这个 ScriptingContainer(LocalVariableBehavior.PERSISTENT) 但这必要意味着你已经可以访问这个 scriptContainer 里面的大部分内容。也许,我们可以稍微修改你的代码并尝试使用解析。请查看 example 4 .它可能会启发你。希望这可以帮助。

关于jruby - 从 Java 的 JRuby 脚本顶级环境访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721470/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com