首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jruby嵌入式模块和类

Jruby嵌入式模块和类
EN

Stack Overflow用户
提问于 2010-03-31 04:24:56
回答 1查看 1.7K关注 0票数 2

我有一个ruby文件,如下所示:

代码语言:javascript
复制
module Example
    class Myclass
        def t_st
            "Hello World!"
        end
    end
end

现在,如果这只是一个类,我将能够使用以下java代码:

代码语言:javascript
复制
ScriptEngine jruby = new ScriptEngineManager().getEngineByName("jruby");
jruby.eval(new BufferedReader(new FileReader("example.rb")));
Object example = jruby.eval("Myclass.new");

然而,这个类位于一个模块中。调用与上面相同的代码会产生错误:

代码语言:javascript
复制
Exception in thread "main" org.jruby.embed.EvalFailedException: uninitialized constant myclass

另外,调用:

代码语言:javascript
复制
Object example = jruby.eval("Example");

该模块不返回任何错误。因此,可以假定它遵循Ruby的格式。

代码语言:javascript
复制
Object example = jruby.eval("Example::myclass.new");

然而,我又一次得到了和以前一样的错误。

有人能帮上忙吗?因为关于JRuby的文档很少?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-31 11:38:47

确保没有语法错误。通常,当我不注意我写的东西时,我会收到这些错误...

其次,您不能编写以下代码:

代码语言:javascript
复制
Object example = jruby.eval("Myclass.new");

原因是你的类在一个模块中。相反,可以使用this:

代码语言:javascript
复制
Object example = jruby.eval("Example::Myclass.new");

除此之外,我不知道问题出在哪里。对于我自己来说,我能够在Java 1.6下运行以下代码,并在我的类路径下使用jruby-engine.jar和jruby-complete-1.4.0.jar。

代码语言:javascript
复制
package test;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class MyJavaClass {
    public static void main(String arg[]) throws ScriptException,
            FileNotFoundException {

        ScriptEngine jruby = new ScriptEngineManager().getEngineByName("jruby");
        jruby.eval(new BufferedReader(new FileReader("example.rb")));
        Object example = jruby.eval("Example::Myclass.new");
        jruby.put("a", example);
        System.out.println(jruby.eval("$a.t_st"));

    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2548442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档