Java 如果我没有';你不跟它分享吗?
如果我在Java 如果我没有';你不跟它分享吗?,java,ruby,jruby,Java,Ruby,Jruby,如果我在Java应用程序中有一个Ruby脚本,由JRuby的ScriptingContainer执行,Ruby脚本是否能够访问或使用我在Java应用程序中定义的类(如果我没有与该脚本共享任何内容) 我的意思是分享: ruby = new ScriptingContainer(LocalVariableBehavior.PERSISTENT); ruby.put("main", MyClass.class); ruby.runScriptlet(readFile("Test.rb")); 如您所
Java
应用程序中有一个Ruby
脚本,由JRuby
的ScriptingContainer
执行,Ruby
脚本是否能够访问或使用我在Java
应用程序中定义的类(如果我没有与该脚本共享任何内容)
我的意思是分享:
ruby = new ScriptingContainer(LocalVariableBehavior.PERSISTENT);
ruby.put("main", MyClass.class);
ruby.runScriptlet(readFile("Test.rb"));
如您所见,我正在与Ruby
脚本共享一个名为main的变量,其值为MyClass.class
如果我不共享任何内容,
Ruby
脚本是否仍然能够在我的应用程序中使用MyClass
?是的,如下所示:如果MyClass
在你的类路径上/$LOAD\u路径
,JRuby将在你导入java\u
它时获取它。啊,这是无法避免的?@Omega你想避免什么?将类放在类路径上?尽管类在类路径上,但避免java_导入。您必须使用java::
前缀或java_导入
,因为您的类位于“默认”包中,或者将您的类放在以org
或com
开头的包中,然后使用其完全限定名引用该类。