同じ JVM 内で実行されている場合、2 つの JRuby インスタンス間でオブジェクトを共有できるかどうかを知りたいですか?
両方のJRubyから参照されるシングルトンJavaクラスを作成しようとしましたが、各JRubyが独自の環境とそのJavaクラスの独自のバージョンを作成しているようです。
誰かがこれを解決する方法を知っていますか?
わかりました-実際には2つの問題がありました。
LocalContextScope が「singleton」および「concurrent」に設定されている場合、次のようなことが可能です。
require 'java'
include Java
import 'org.jruby.embed.ScriptingContainer'
import 'org.jruby.embed.LocalContextScope'
$a = "Test"
container = ScriptingContainer.new LocalContextScope::CONCURRENT
container.run_scriptlet "puts $a"